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.
- {somef_core-0.0.1 → somef_core-0.0.2}/PKG-INFO +22 -4
- {somef_core-0.0.1 → somef_core-0.0.2}/README.md +18 -1
- {somef_core-0.0.1 → somef_core-0.0.2}/pyproject.toml +4 -3
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/__init__.py +1 -1
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/__main__.py +5 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/header_analysis.py +32 -11
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/codemeta_parser.py +16 -10
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/codeowners_parser.py +18 -6
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/description_parser.py +3 -1
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/gemspec_parser.py +3 -1
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/python_parser.py +3 -1
- somef_core-0.0.2/src/somef_core/parser/zenodo_parser.py +162 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/process_files.py +14 -4
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/process_repository.py +111 -24
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/regular_expressions.py +24 -19
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/somef_cli.py +58 -14
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_JSON_export.py +30 -4
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_cli.py +104 -36
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codemeta_export.py +1 -1
- somef_core-0.0.2/src/somef_core/test/test_data/api_responses/zenodo/zenodo_somef_22943101.json +168 -0
- somef_core-0.0.2/src/somef_core/test/test_data/repositories/cloud-genomics/.zenodo.json +69 -0
- somef_core-0.0.2/src/somef_core/test/test_data/repositories/epic/.zenodo.json +41 -0
- somef_core-0.0.2/src/somef_core/test/test_data/repositories/fake_zenodo/.zenodo.json +35 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_description_parser.py +24 -1
- somef_core-0.0.2/src/somef_core/test/test_doi_zenodo.py +108 -0
- somef_core-0.0.2/src/somef_core/test/test_enrichment.py +292 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_header_analysis.py +52 -2
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_process_repository.py +107 -70
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_python_parser.py +25 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_regular_expressions.py +13 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_wiki.py +19 -11
- somef_core-0.0.2/src/somef_core/test/test_zenodo_parser.py +135 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/constants.py +74 -7
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/enrichment.py +150 -40
- somef_core-0.0.2/src/somef_core/zenodo_deposit.py +200 -0
- somef_core-0.0.1/src/somef_core/test/test_enrichment.py +0 -169
- {somef_core-0.0.1 → somef_core-0.0.2}/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/configuration.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/export/__init__.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/export/google_codemeta_export.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/export/json_export.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/extract_software_type.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/extract_workflows.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/__init__.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/authors_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/bower_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/cabal_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/composer_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/conda_environment_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/create_excerpts.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/dockerfile_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/mardown_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/package_json_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/pom_xml_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/publiccode_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/setupcfg_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/toml_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/process_results.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/__init__.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/conftest.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_bitbucket.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_bower_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_cabal_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codeberg.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codemeta_gitlab_export.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codemeta_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_composer_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_conda_environment_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_configuration.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-EUVpy.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-FTR.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-GENI.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-MEL-TNNT.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-OBA-SPARQL.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-OWL-To-OAS.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-PPool.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-TINTO.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-agora.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-almost-empty.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-base-images.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-ci-sample-project.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-citation-file-format.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-componentinstaller.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-csl-editor.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-devilog.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-easytv-annotator.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-epw2rdf-contents.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-epw2rdf.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-fair-ontologies.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-fastify.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-gammalearn.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-gammapy.rst +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-kgtk-notebooks.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-laueNN.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-licensius.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-lighttwin.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-loupe-api.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-manim.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-mapeathor.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-mapshaper.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-menty.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-os-platforms.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-panda.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-pylops.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-pytorch.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-raidologist.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-reggae.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-stract.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-sunpy.rst +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tada-gam.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tensorflow-2.6.0.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tokei.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tpronk.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-unboundedsystems.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-uncbiag.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-urllib3.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-widoco-duplicate-dois.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-widoco-swh.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-widoco.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-wothive.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-ya2o.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/SimulatedReads2Map.wdl +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/bitbucket/bitbucket_response.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/bitbucket/bitbucket_tags.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/codeberg/codeberg_forgejo.json +0 -0
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/somef-demo.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/widoco_api_response.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/docker_AUTHORS.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/ireeOrg_AUTHORS.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/jetBrain_AUTHORS.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/pluginsGLPI_AUTHORS.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/tensorFlow_AUTHORS.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/Widoco.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/aladin-lite.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/gammapy.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/r3broot2.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/runtime_platform_repo.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/export_test.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/extract_bash_code.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/input-test.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/package_neors.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/package_npm.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/pyansys-README.rst +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/rasterio-README.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Clamp/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Fairwinds/Dockerfile +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Fermi/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Flux.jl/Project.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/README +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/converter.cwl +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/tar.cwl +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/twoBitToFa.cwl +0 -0
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Pluto.jl/Project.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Prometeus/Dockerfile +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/.gitignore +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/pom.xml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/rdfchess.config +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/run.bat +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/CONTRIBUTING.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/Dockerfile +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/docs/pom.sml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/docs/pom.xml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/license.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/ontology.nt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/ontology.ttl +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/test.ttl +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/pom.xml +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/test/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/test/test/CITATION.cff +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ack/ACKNOWLEDGMENT.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ack/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/aladin-lite/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/auroral-ontology-core/ontology.rdf +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/auroral-ontology-core/ontology.xml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/auroral-ontology-core/readme.md +0 -0
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/bimerr-epw/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/bimerr-epw/README.md +0 -0
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/.gitattributes +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/.gitignore +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/AWESOME_LIST.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/CITATION +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/CODE_OF_CONDUCT.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/CONTRIBUTING.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/environment.yml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/setup.cfg +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/setup.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/chosen/bower.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/codecov/composer.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/codemeta_repo/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/componentInstaller/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/componentInstaller/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/componentInstaller/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/composer/composer.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/corpuser/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/DESCRIPTION +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/LICENSE.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/citation.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/pom.xml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/AUTHORS +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/gammalearn/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/gammapy/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ggplot2/DESCRIPTION +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ggstatsplot/DESCRIPTION +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ggstatsplot/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/haskell/cabal.cabal +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/docs/requirements.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/requirements.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/setup.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ipynb-master/__init__.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ipynb-master/bogus_ipynb.ipynb +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ipynb-master/r_notebook.ipynb +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/js-template/bower.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/js-template/package.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/README.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/maven/pom.xml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/maykinMedia/publiccode.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mir_eval/LICENSE.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mir_eval/README.rst +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mir_eval/setup.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mira/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mira/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/nemo/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/nemo/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/pcake/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/pcake/setup.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/.editorconfig +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/.gitignore +0 -0
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/LICENSE +0 -0
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/publicCode-Example/publiccode.yml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/r3broot2/codemeta.json +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/CONTRIBUTORS +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/LICENSE +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/Makefile +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/LICENSE.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/README.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/resolver_deco.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/setup.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/runtime_platform_repo/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rustdesk/Cargo.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/setup.cfg +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/software_catalog/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/software_catalog/README.md +0 -0
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/README.md +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/pyproject.toml +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sprint-main/setup.sh +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/stable-diffusion/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/stable-diffusion/environment.yaml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy/CITATION.cff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy_short_desc/README.rst +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy_short_desc/pyproject.toml +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/tensorflow/CODEOWNERS +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/tensorflow/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/termlex-main/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/termlex-main/ontology/termlex.ttl +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/termlex-main/termlex_core.png +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/tidyverse/DESCRIPTION +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/unused/unused.cabal +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/CMakeLists.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/CODE_OF_CONDUCT.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/CONTRIBUTING.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/Decode.cpp +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/Test.cpp +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/Train.cpp +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/DecoderSketch.png +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/arch.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/decoder.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/installation.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/train.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/OptimizeSortParams.cpp +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/Seq2SeqAnalysis.cpp +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/arrayfire_parser.py +0 -0
- {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
- {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
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/imgcat +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/tensorboard.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavdiff +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavextract +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavplot +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavstatus +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/fonts.css +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/header.js +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/image.js +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/index.html +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/index.js +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/layout.js +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/privacy.js +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/terms.js +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/workloopr/LICENSE +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/workloopr/README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/workloopr/codemeta.json +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wot-hive/README.md +0 -0
- {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
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wot-hive/docker/fuseki/Dockerfile +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repostatus-README-2.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repostatus-README.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_465.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_arxiv_links.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_bibtex.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_binder_links.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_dois.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_gitter_chat.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_header_content_hash.txt +0 -0
- {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
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_header_content_underline.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_readthedocs_1.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_readthedocs_2.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_readthedocs_3.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_title_hash.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_title_underline.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_title_with_md.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_images.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_181.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_181_2.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_181_3.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_270.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_images.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo2.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo_tensorflow.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo_uscisii2.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_pypi.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_repo_status.txt +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_wiki.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/widoco_readme.md +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_dockerfile_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_extract_authors.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_extract_workflows.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_gemspec_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_gitlab_selfhosted.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_gitlab_token_handling.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_google_compliant_export.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_package_json_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_parser_somef.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_pom_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_process_results.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_publiccode_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_setupcfg_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_software_type.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_toml_parser.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_verify_token.py +0 -0
- {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/__init__.py +0 -0
- {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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
42
|
+
[](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
|
-
|
|
3
|
+
[](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.
|
|
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 = "
|
|
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.
|
|
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"
|
|
@@ -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
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
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
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
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
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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.
|
|
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
|
-
|
|
315
|
-
|
|
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:
|