├── .editorconfig
├── .flake8
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ └── bug_report.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── bad-link-reporter.yml
│ ├── codemeta2cff.yaml
│ ├── doc-builder.yml
│ ├── iga.yml
│ ├── ignored-urls.txt
│ ├── markdown-linter.yml
│ ├── pypi-publish.yaml
│ ├── python-linter.yml
│ └── waystation.yml
├── .gitignore
├── .gitlint
├── .graphics
├── caltech-round.png
└── caltech-round.svg
├── .jsonlintrc.json
├── .markdownlint.json
├── CHANGES.md
├── CITATION.cff
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── INSTALL-Python3.md
├── LICENSE
├── README.md
├── RELEASE.md
├── SUPPORT.md
├── action.yml
├── codemeta.json
├── dev
├── 1000-top-github-contributors.txt
├── common-words-also-names.txt
├── experiments
│ ├── comparison-name-taggers
│ │ ├── bert1.py
│ │ ├── bert2.py
│ │ ├── bert3.py
│ │ ├── h.py
│ │ └── n.py
│ ├── detect-language
│ │ ├── get-top-github-contributors-china.py
│ │ ├── get-top-github-contributors-japan.py
│ │ ├── get-top-github-contributors-korea.py
│ │ ├── github-top-chinese-contributors.txt
│ │ ├── github-top-contributors-korean.txt
│ │ ├── test-language-detectors.py
│ │ ├── test-spacy-chinese.py
│ │ ├── test-spacy-japanese.py
│ │ └── test-spacy-korean.py
│ ├── graphql-test.py
│ ├── loading-big-set
│ │ └── testpickle.py
│ └── validation
│ │ ├── README.md
│ │ ├── data
│ │ ├── README.md
│ │ └── datacite_4.3_schema.json
│ │ └── validation.py
├── format-descriptions
│ ├── citation-cff
│ │ ├── README.md
│ │ └── schema-guide.md
│ ├── codemeta
│ │ ├── README.md
│ │ ├── codemeta-crosswalk.csv
│ │ ├── funding-examples.md
│ │ └── reference-codemeta-crosswalk.numbers
│ ├── datacite
│ │ ├── DataCite-MetadataKernel_v4.4.pdf
│ │ └── README.md
│ └── inveniordm
│ │ ├── inveniordm-field-mapping.numbers
│ │ ├── inveniordm-samples
│ │ └── inveniordm-record-sample.json
│ │ └── vocabularies
│ │ ├── README.md
│ │ ├── dates.txt
│ │ ├── description-types.txt
│ │ ├── id-types.txt
│ │ ├── relations.txt
│ │ ├── resources.txt
│ │ ├── roles.txt
│ │ └── title-types.txt
├── org-names
│ ├── famous-orgs.txt
│ └── github-orgs.txt
├── person-names
│ ├── README.md
│ ├── chinese-surnames.txt
│ ├── enamdict
│ │ └── JMnedict.xml.gz
│ ├── japanese-surnames.txt
│ ├── korean-surnames.txt
│ └── wikipedia
│ │ └── parse-common-names.py
└── scripts
│ ├── create-licenses-file
│ ├── download-sample-repo
│ ├── filter-github-orgs
│ └── list-github-orgs
├── docs
├── Makefile
├── _static
│ ├── css
│ │ └── custom.css
│ └── media
│ │ ├── caltech-round.png
│ │ ├── cloud-upload-reversed.png
│ │ ├── cloud-upload.png
│ │ ├── cloud-upload.svg
│ │ ├── example-github-citation.jpg
│ │ ├── example-github-release.jpg
│ │ ├── example-record-landing-page.jpg
│ │ ├── favicon.ico
│ │ ├── get-invenio-pat.png
│ │ ├── gh-workflow-list.png
│ │ ├── gh-workflow-run-options.png
│ │ ├── gh-workflow-run.png
│ │ ├── github-action-details.png
│ │ ├── github-actions-all-workflows.png
│ │ ├── github-final-secrets-list.png
│ │ ├── github-notifications-actions.png
│ │ ├── github-notifications-link.png
│ │ ├── github-notifications-selections.png
│ │ ├── github-run-workflow.png
│ │ ├── github-running-workflow.png
│ │ ├── github-secrets.png
│ │ ├── github-sidebar-secrets.png
│ │ ├── github-tabs-actions.png
│ │ ├── github-tabs.png
│ │ ├── github-workflow-options-circled.png
│ │ ├── github-workflow-options.png
│ │ ├── inveniordm-version-example.png
│ │ └── new-pat.png
├── appendix.md
├── cli-usage.md
├── colophon.md
├── conf.py
├── gha-usage.md
├── glossary.md
├── index.md
├── installation.md
├── introduction.md
├── quick-start.md
└── tips.md
├── iga
├── __init__.py
├── __main__.py
├── cli.py
├── data
│ ├── make-pickle-orgs
│ ├── make-pickle-surnames
│ ├── org-names.p
│ ├── org-names.txt
│ ├── surnames.p
│ └── surnames.txt
├── data_utils.py
├── doi.py
├── exceptions.py
├── exit_codes.py
├── github.py
├── id_utils.py
├── invenio.py
├── json_utils.py
├── licenses.py
├── metadata.py
├── name_utils.py
├── orcid.py
├── reference.py
├── ror.py
├── text_utils.py
└── vendor
│ ├── README.md
│ └── pybtex_apa7_style
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── formatting
│ ├── __init__.py
│ └── apa.py
│ ├── labels
│ ├── __init__.py
│ └── apa.py
│ ├── names
│ ├── __init__.py
│ └── firstlast.py
│ ├── poetry.lock
│ └── pyproject.toml
├── requirements-dev.txt
├── requirements-lint.txt
├── requirements.txt
├── sample-workflow.yml
├── setup.cfg
├── setup.py
└── tests
├── conftest.py
├── data
├── expected-iga-output
│ └── libsbml-5.19.7.json
├── fake-example
│ ├── LICENSE
│ ├── account.json
│ ├── codemeta.json
│ ├── expected-metadata.json
│ ├── filenames.json
│ ├── release.json
│ └── repo.json
├── github-examples
│ ├── neither-codemeta-nor-cff
│ │ ├── TCCON
│ │ │ ├── from-data-caltech-edu.json
│ │ │ └── py-ginput
│ │ │ │ ├── LICENSE.txt
│ │ │ │ ├── filenames.json
│ │ │ │ ├── release.json
│ │ │ │ ├── repo.json
│ │ │ │ └── user.json
│ │ └── sbmlteam
│ │ │ ├── jsbml
│ │ │ ├── LICENSE
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── repo.json
│ │ │ └── user.json
│ │ │ └── libsbml
│ │ │ ├── LICENSE.html
│ │ │ ├── LICENSE.txt
│ │ │ ├── filenames.json
│ │ │ ├── repo.json
│ │ │ └── user.json
│ ├── with-citation-cff
│ │ ├── SDXorg
│ │ │ └── pysd
│ │ │ │ ├── CITATION.cff
│ │ │ │ ├── LICENSE
│ │ │ │ ├── filenames.json
│ │ │ │ ├── release.json
│ │ │ │ ├── repo.json
│ │ │ │ └── user.json
│ │ ├── open-mmlab
│ │ │ └── mmocr
│ │ │ │ ├── CITATION.cff
│ │ │ │ ├── LICENSE
│ │ │ │ ├── filenames.json
│ │ │ │ ├── repo.json
│ │ │ │ └── user.json
│ │ └── tensorflow
│ │ │ └── tensorflow
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ ├── repo.json
│ │ │ └── user.json
│ └── with-codemeta
│ │ ├── KarrLab
│ │ └── de_sim
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── README.md
│ │ ├── UUDigitalHumanitieslab
│ │ └── tscan
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── betteridiot
│ │ └── bamnostic
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── caltechlibrary
│ │ ├── eprinttools
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── license.html
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── handprint
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ └── urlup
│ │ │ ├── LICENSE
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── cds-astro
│ │ └── tutorials
│ │ │ ├── LICENCE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── charlie86
│ │ └── spotifyr
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── codemeta
│ │ └── codemeta
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── crosscite
│ │ └── content-negotiation
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── datacite
│ │ ├── akita
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ └── pidgraph-notebooks-python
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── ddsjoberg
│ │ └── gtsummary
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE.md
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── duetosymmetry
│ │ └── qnm
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── fairdataihub
│ │ ├── FAIRshare-Docs-expected.json
│ │ ├── FAIRshare-Docs
│ │ │ ├── CITATION.cff
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ └── SODA-for-SPARC
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── gem-pasteur
│ │ └── Integron_Finder
│ │ │ ├── CITATION.cff
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── karthik
│ │ └── wesanderson
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── mne-tools
│ │ └── mne-python
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE.txt
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── o2r-project
│ │ └── o2r-meta
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── open-mpi
│ │ └── hwloc
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ └── repo.json
│ │ ├── pat-s
│ │ └── oddsratio
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── proycon
│ │ └── codemeta-harvester
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── detect-license.sh
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── ropensci
│ │ └── mctq
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE.md
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── smsaladi
│ │ └── em_data_requirements
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ ├── stain
│ │ └── signposting
│ │ │ ├── CITATION.cff
│ │ │ ├── LICENSE
│ │ │ ├── account.json
│ │ │ ├── codemeta.json
│ │ │ ├── filenames.json
│ │ │ ├── release.json
│ │ │ └── repo.json
│ │ └── sulstice
│ │ └── global-chem
│ │ ├── CITATION.cff
│ │ ├── LICENSE
│ │ ├── account.json
│ │ ├── codemeta.json
│ │ ├── filenames.json
│ │ ├── release.json
│ │ └── repo.json
├── orcid-examples
│ ├── 0000-0001-6151-2200.json
│ ├── 0000-0001-9105-5960.json
│ ├── 0000-0002-8876-7606.json
│ └── 0000-0003-0900-6903.json
└── ror-examples
│ ├── 02s6k3f65.json
│ ├── 03ybx0x41.json
│ └── 05dxps055.json
├── test_cli.py
├── test_data_utils.py
├── test_doi.py
├── test_exceptions.py
├── test_exit_codes.py
├── test_github.py
├── test_github_mocks.py
├── test_id_utils.py
├── test_init.py
├── test_is_person.py
├── test_licenses.py
├── test_name_splitting.py
├── test_name_utils.py
├── test_orcid.py
├── test_record_from_codemeta.py
├── test_reference.py
├── test_ror.py
└── test_text_utils.py
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Summary: EditorConfig file for this project. -*- conf -*-
2 | #
3 | # For more information, see https://EditorConfig.org
4 | #
5 | # Copyright 2024 California Institute of Technology.
6 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
7 | # Website: https://github.com/caltechlibrary/iga
8 |
9 | root = true
10 |
11 | [*]
12 | charset = utf-8
13 | end_of_line = lf
14 | indent_size = 4
15 | indent_style = space
16 | insert_final_newline = true
17 | max_line_length = 90
18 | tab_width = 4
19 | trim_trailing_whitespace = true
20 |
21 | [*.cfg]
22 | indent_size = 2
23 |
24 | [*.json]
25 | indent_size = 2
26 |
27 | [*.{yml, yaml}]
28 | indent_size = 2
29 |
30 | # Shell scripts on Windows.
31 | [*.{cmd, bat}]
32 | end_of_line = crlf
33 |
34 | [Makefile, makefile]
35 | indent_size = 4
36 | indent_style = tab
37 | tab_width = 8
38 |
39 | [.applescript]
40 | indent_size = 4
41 | indent_style = tab
42 | tab_width = 4
43 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Summary: repository-specific file attributes assignments for git.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 |
7 | # Set default interpretation of line endings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 |
9 | * text=auto
10 |
11 | # Interpretation of common text files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 |
13 | *.bat text eol=crlf
14 | *.cff text
15 | *.cfg text
16 | *.css text diff=css
17 | *.env text
18 | *.html text diff=html
19 | *.ini text
20 | *.ipynb text eol=lf
21 | *.js text
22 | *.json text
23 | *.md text diff=markdown
24 | *.py text diff=python
25 | *.rst text
26 | *.sh text
27 | *.sql text
28 | *.svg text
29 | *.toml text
30 | *.tex text diff=tex
31 | *.txt text
32 | *.yaml text merge=yaml
33 | *.yml text merge=yaml
34 |
35 | # RC files like .babelrc, .eslintrc, etc.
36 | *.*rc text
37 |
38 | LICENSE text
39 | Makefile text
40 |
41 | *.gitattributes text
42 | *.*ignore text
43 | .gitconfig text
44 |
45 | # Interpretation of common binary files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 |
47 | *.bz binary
48 | *.DOC binary
49 | *.doc binary
50 | *.DOCX binary
51 | *.docx binary
52 | *.DOT binary
53 | *.dot binary
54 | *.gz binary
55 | *.jpeg binary
56 | *.jpg binary
57 | *.PDF binary
58 | *.pdf binary
59 | *.RTF binary
60 | *.rtf binary
61 | *.tar binary
62 | *.tgz binary
63 | *.tif binary
64 | *.tiff binary
65 | *.xls binary
66 | *.zip binary
67 |
68 | # Special case for CSV files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | # This avoids compatibility issues between Windows and Mac.
70 |
71 | *.csv text eol=crlf
72 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve this software
4 | title: ''
5 | labels: 'kind/bug-report'
6 | assignees: ''
7 | ---
8 |
9 | ### Description
10 |
11 | Please explain in a clear and concise way what the issue is.
12 |
13 |
14 | ### How to reproduce the issue
15 |
16 | Explain in a step-by-step fashion what someone else would need to do in order to reproduce the issue. Try to include literal examples of commands or code in your description, like this:
17 |
18 | ```
19 | put commands and/or code in code blocks *like this*
20 | ```
21 |
22 |
23 |
24 | Put the output of code examples, log files, or other detailed content in HTML details blocks _like this_.
25 |
26 |
27 |
28 |
29 | ### Screenshots
30 |
31 | If applicable, add screenshots to help explain your problem.
32 |
33 |
34 | ### Software environment
35 |
36 | Please include the following information:
37 | * Version of the software:
38 | * (If relevant) the version of Python that you are using:
39 | * (If relevant) the operating system and version that you are using:
40 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ⭐️ Please remember to make PRs against a branch (usually `develop`) and not against `main`. ⭐️
2 |
3 | ### Description
4 |
5 | Please describe what this PR is about and what it changes. If this PR is in response to an issue in the issue tracker, please reference it.
6 |
7 | ### Software environment
8 |
9 | Please include the following information:
10 | * Version of the software:
11 | * (If relevant) version of Python in which the changes were tested:
12 | * (If relevant) OS and version on which the changes were tested:
13 |
14 | ### Checklist
15 |
16 | Please check that the following have been done:
17 | - [ ] the [description section above](#description) has been filled out
18 | - [ ] the [software environment section above](#software-environment) has been filled out
19 | - [ ] this PR is against `develop` or another branch and not `main`
20 |
--------------------------------------------------------------------------------
/.github/workflows/bad-link-reporter.yml:
--------------------------------------------------------------------------------
1 | # GitHub Actions workflow for Baler (BAd Link reportER) version 2.0.4.
2 | # This is available as the file "sample-workflow.yml" from the source
3 | # code repository for Baler: https://github.com/caltechlibrary/baler
4 |
5 | name: Bad Link Reporter
6 |
7 | # Configure this section ─────────────────────────────────────────────
8 |
9 | env:
10 | # Files to check. (Put patterns on separate lines, no leading dash.)
11 | files: |
12 | **/*.md
13 |
14 | # Label assigned to issues created by this workflow:
15 | labels: bug
16 |
17 | # Number of previous issues to check for duplicate reports.
18 | lookback: 10
19 |
20 | # Time (sec) to wait on an unresponsive URL before trying once more.
21 | timeout: 15
22 |
23 | # Optional file containing a list of URLs to ignore, one per line:
24 | ignore: .github/workflows/ignored-urls.txt
25 |
26 | on:
27 | schedule: # Cron syntax is: "min hr day-of-month month day-of-week"
28 | - cron: 00 04 * * 1
29 | push:
30 | paths: ['**.md']
31 | workflow_dispatch:
32 |
33 | # The rest of this file should be left as-is ─────────────────────────
34 |
35 | run-name: Test links in Markdown files
36 | jobs:
37 | Baler:
38 | name: Link checker and reporter
39 | runs-on: ubuntu-latest
40 | permissions:
41 | issues: write
42 | steps:
43 | - uses: caltechlibrary/baler@v2
44 | with:
45 | files: ${{github.event.inputs.files || env.files}}
46 | labels: ${{github.event.inputs.labels || env.labels}}
47 | ignore: ${{github.event.inputs.ignore || env.ignore}}
48 | timeout: ${{github.event.inputs.timeout || env.timeout}}
49 | lookback: ${{github.event.inputs.lookback || env.lookback}}
50 |
--------------------------------------------------------------------------------
/.github/workflows/codemeta2cff.yaml:
--------------------------------------------------------------------------------
1 | name: CodeMeta2CFF
2 | run-name: Run CodeMeta2CFF after ${{github.event_name}} by ${{github.actor}}
3 |
4 | on:
5 | push:
6 | paths: ['codemeta.json']
7 | workflow_dispatch:
8 | inputs:
9 | reason:
10 | description: 'Reason'
11 | required: false
12 | default: 'Manual trigger'
13 |
14 | jobs:
15 | CodeMeta2CFF:
16 | runs-on: ubuntu-latest
17 | steps:
18 | - name: Checkout
19 | uses: actions/checkout@v4
20 | - name: Convert CFF
21 | uses: caltechlibrary/codemeta2cff@main
22 | - name: Commit CFF
23 | uses: EndBug/add-and-commit@v9
24 | with:
25 | message: 'Add updated CITATION.cff from codemeta.json file'
26 | add: 'CITATION.cff'
27 |
--------------------------------------------------------------------------------
/.github/workflows/ignored-urls.txt:
--------------------------------------------------------------------------------
1 | https://your-invenio-server.org/
2 |
--------------------------------------------------------------------------------
/.github/workflows/markdown-linter.yml:
--------------------------------------------------------------------------------
1 | # Summary: GitHub Actions workflow to run a Markdown linter on .md files.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 |
7 | name: Markdown file linter
8 | run-name: Lint Markdown files after ${{github.event_name}} by ${{github.actor}}
9 |
10 | on:
11 | push:
12 | branches:
13 | - main
14 | paths:
15 | - '*.md'
16 | - .markdownlint.json
17 | pull_request:
18 | branches:
19 | - main
20 | paths:
21 | - '*.md'
22 | - .markdownlint.json
23 | workflow_dispatch:
24 | paths:
25 | - '*.md'
26 |
27 | jobs:
28 | lint:
29 | name: Run Markdown linter
30 | runs-on: ubuntu-latest
31 | steps:
32 | - name: Check out copy of git repository.
33 | uses: actions/checkout@v4
34 |
35 | - name: Run Markdownlint on .md files.
36 | uses: DavidAnson/markdownlint-cli2-action@v15
37 | with:
38 | config: .markdownlint.json
39 | globs: |
40 | *.md
41 |
--------------------------------------------------------------------------------
/.github/workflows/pypi-publish.yaml:
--------------------------------------------------------------------------------
1 | name: Pypi Publish
2 |
3 | on:
4 | push:
5 | tags:
6 | - v*
7 |
8 | jobs:
9 | build-n-publish:
10 | runs-on: ubuntu-latest
11 | environment:
12 | name: pypi
13 | url: https://pypi.org/p/iga
14 | permissions:
15 | id-token: write
16 | steps:
17 | - uses: actions/checkout@v2
18 | - name: Set up Python 3.9
19 | uses: actions/setup-python@v2
20 | with:
21 | python-version: 3.9
22 | - name: Install dependencies
23 | run: |
24 | python -m pip install --upgrade pip
25 | pip install setuptools wheel
26 | - name: Build package
27 | run: |
28 | python setup.py sdist bdist_wheel
29 | - name: Publish
30 | uses: pypa/gh-action-pypi-publish@release/v1
31 |
--------------------------------------------------------------------------------
/.github/workflows/python-linter.yml:
--------------------------------------------------------------------------------
1 | # Summary: GitHub Actions workflow to run flake8 on codebase.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/baler
6 |
7 | name: Python file linter
8 | run-name: Lint code after ${{github.event_name}} by ${{github.actor}}
9 |
10 | on:
11 | push:
12 | paths:
13 | - '**.py'
14 | pull_request:
15 | paths:
16 | - '**.py'
17 | workflow_dispatch:
18 | paths:
19 | - '**.py'
20 |
21 | jobs:
22 | flake8-lint:
23 | name: Run flake8
24 | runs-on: ubuntu-latest
25 | steps:
26 | - name: Check out source repository
27 | uses: actions/checkout@v4
28 |
29 | - name: Set up Python environment
30 | uses: actions/setup-python@v4
31 | with:
32 | python-version: "3.11"
33 | cache: pip
34 |
35 | - name: Install dependencies
36 | run: |
37 | python -m pip install --upgrade pip
38 | python -m pip install -r requirements-lint.txt
39 |
40 | - name: Run flake8
41 | uses: TrueBrain/actions-flake8@v2
42 | with:
43 | only_warn: 1
44 | extra_arguments: --show-source --config=./.flake8 --extend-exclude=iga/vendor/,dev/,docs/,tests/
45 | plugins: flake8>=4.0.1 flake8-bugbear>=22.4.25 flake8-builtins>=1.5.3 flake8-comprehensions>=3.8.0 flake8-executable>=2.1.1 flake8_implicit_str_concat>=0.3.0 flake8-pie>=0.15.0 flake8-simplify>=0.19.2
46 |
--------------------------------------------------------------------------------
/.github/workflows/waystation.yml:
--------------------------------------------------------------------------------
1 | # GitHub Actions workflow for Waystation version 1.8.0.
2 | # Available as the file "sample-workflow.yml" from the software
3 | # repository at https://github.com/caltechlibrary/waystation
4 |
5 | name: GitHub Pages archiver
6 | run-name: Archive GitHub Pages in the Wayback Machine
7 |
8 | on:
9 | release:
10 | types: [published]
11 | workflow_dispatch:
12 | inputs:
13 | dry_run:
14 | description: Run without actually sending URLs
15 | type: boolean
16 |
17 | jobs:
18 | run-waystation:
19 | name: Run Waystation
20 | runs-on: ubuntu-latest
21 | steps:
22 | - uses: caltechlibrary/waystation@v1.8
23 | with:
24 | dry_run: ${{github.event.inputs.dry_run || false}}
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Summary: rules for files and subdirectories to be ignored by git.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 | #
7 | # ╭─────────────────────── Notice ── Notice ── Notice ────────────────────────╮
8 | # │ The recommended approach is to add ONLY project-specific rules to the │
9 | # │ .gitignore of a repo. Users can put rules that apply to their individual │
10 | # │ ways of doing things into global git ignore files that they set up using │
11 | # │ (e.g.) "git config --global core.excludesfile ~/.gitignore_global". For │
12 | # │ example, a number of files such as Emacs checkpoint and backup files are │
13 | # │ things that are not specific to a given project; rather, Emacs creates │
14 | # │ them everywhere, in all projects, because they're a byproduct of how it │
15 | # │ works. Thus, rules to ignore them belong in users' own global .gitignore │
16 | # │ files, not in a project's .gitignore. │
17 | # │ │
18 | # │ A useful starting point for global .gitignore file contents can be found │
19 | # │ at https://github.com/github/gitignore/tree/main/Global (as of 2022-07-14)│
20 | # ╰───────────────────────────────────────────────────────────────────────────╯
21 |
22 | # Ignore backup files created by our Makefile ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 |
24 | *.bak
25 |
26 | # Python-specific things to ignore ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 |
28 | __pycache__/
29 | *.py[cod]
30 | *$py.class
31 | *.egg-info/
32 | .eggs/
33 | .pytest_cache
34 | .coverage
35 | tests/*.log
36 |
37 | # Project-specific things to ignore ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 |
39 | build
40 | dist
41 | docs/_build
42 | e.sh
43 | iga/tmp
44 | *.tmp
45 | *.log
46 | fake.txt
47 | debug.out
48 |
--------------------------------------------------------------------------------
/.gitlint:
--------------------------------------------------------------------------------
1 | # Summary: project config file for gitlint. -*- mode: confg -*-
2 | #
3 | # Copyright 2024 by the California Institute of Technology.
4 | # License: BSD-type license – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 |
7 | [general]
8 | verbosity=2
9 | ignore=title-trailing-punctuation,body-is-missing
10 | regex-style-search=True
11 |
12 | [title-max-length]
13 | line-length=72
14 |
15 | # Dependabot tends to generate lines that exceed the char limit.
16 | [ignore-by-author-name]
17 | regex=dependabot
18 | ignore=all
19 |
--------------------------------------------------------------------------------
/.graphics/caltech-round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/.graphics/caltech-round.png
--------------------------------------------------------------------------------
/.jsonlintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "comments": false,
3 | "trailing-commas": false,
4 | "duplicate-keys": false,
5 | "log-files": false,
6 | "compact": true,
7 | "continue": true,
8 | "patterns": ["**/*.json"]
9 | }
10 |
--------------------------------------------------------------------------------
/.markdownlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "blank_lines": {
3 | "maximum": 2
4 | },
5 | "html": {
6 | "allowed_elements": [
7 | "a",
8 | "b",
9 | "br",
10 | "code",
11 | "details",
12 | "div",
13 | "em",
14 | "h4",
15 | "i",
16 | "img",
17 | "ins",
18 | "kbd",
19 | "p",
20 | "picture",
21 | "pre",
22 | "source",
23 | "span",
24 | "sup",
25 | "summary"
26 | ]
27 | },
28 | "line-length": {
29 | "line_length": 10000
30 | },
31 | "no-alt-text": true,
32 | "no-duplicate-header": {
33 | "allow_different_nesting": true
34 | },
35 | "MD024": {
36 | "siblings_only": true
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/CITATION.cff:
--------------------------------------------------------------------------------
1 | cff-version: 1.2.0
2 | message: "If you use this software, please cite it as below."
3 | title: InvenioRDM GitHub Archiver (IGA)
4 | authors:
5 | - family-names: Hucka
6 | given-names: Michael
7 | orcid: https://orcid.org/0000-0001-9105-5960
8 | - family-names: Morrell
9 | given-names: Thomas E
10 | orcid: https://orcid.org/0000-0001-9266-5146
11 | abstract: The InvenioRDM GitHub Archiver (IGA) automatically archives GitHub releases in an InvenioRDM repository.
12 | repository-code: "https://github.com/caltechlibrary/iga"
13 | type: software
14 | doi: 10.22002/7vcz4-d4p68
15 | version: 1.3.5
16 | license-url: "https://github.com/caltechlibrary/iga/blob/main/LICENSE"
17 | keywords:
18 | - software
19 | - science
20 | - archiving
21 | - archives
22 | - preservation
23 | - source code
24 | - source code archiving
25 | - source code preservation
26 | - code preservation
27 | - automation
28 | - reproducibility
29 | - research reproducibility
30 | - InvenioRDM
31 | - Invenio
32 | - GitHub
33 | - GitHub Actions
34 | - GitHub Automation
35 | date-released: 2024-11-07
36 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Guidelines for contributing to this project
2 |
3 | Any constructive contributions – bug reports, pull requests (code or documentation), suggestions for improvements, and more – are welcome.
4 |
5 |
6 | ## Conduct
7 |
8 | Everyone is asked to read and respect the [code of conduct](CODE_OF_CONDUCT.md) before participating in this project.
9 |
10 |
11 | ## Coordinating work
12 |
13 | A quick way to find out what is currently in the near-term plans for this project is to look at the [GitHub issue tracker](https://github.com/caltechlibrary/iga/issues), but the possibilities are not limited to what you see there – if you have ideas for new features and enhancements, please feel free to write them up as a new issue or contact the developers directly!
14 |
15 | New development takes place in the `develop` branch. The `v1` branch reflect the latest release, so that code should be the same as the lateset released version of the software.
16 |
17 |
18 | ## Submitting contributions
19 |
20 | Please feel free to contact the author directly, or even better, jump right in and use the standard GitHub approach of forking the repo and creating a pull request. When committing code changes and submitting pull requests, please write a clear log message for your commits.
21 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2022-2024, Caltech
2 | All rights not granted herein are expressly reserved by Caltech.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | 1. Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of the copyright holder nor the names of its contributors
15 | may be used to endorse or promote products derived from this software without
16 | specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 | POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/RELEASE.md:
--------------------------------------------------------------------------------
1 | # Making a Release
2 |
3 | These are the current steps for making a release of IGA
4 |
5 | 1. Work in the develop branch
6 | 2. Run `pytest -v --cov=iga -l tests/`
7 | 3. Add changes to CHANGES.md
8 | 4. Update the version number in setup.cfg
9 | 5. Update the version number in codemeta.json
10 | 6. Make a release on GitHub. This will trigger iga to run and do the release on pypi. Wait for all actions to finish.
11 | 7. Move all new commits to the v1 branch. When on the v1 branch type `git rebase develop`
12 |
--------------------------------------------------------------------------------
/SUPPORT.md:
--------------------------------------------------------------------------------
1 | Support
2 | =======
3 |
4 | Thank you for your interest in this project. If you are experiencing problems or have questions, the following are the preferred methods of reaching someone:
5 |
6 | 1. Report a new issue using the [issue tracker](https://github.com/caltechlibrary/iga/issues).
7 | 2. Send email to the Caltech Library: [helpdesk@library.caltech.edu](mailto:helpdesk@library.caltech.edu).
8 | 3. Send email to an individual involved in the project. People's names appear in the top-level `README.md` file in the source code repository.
9 |
--------------------------------------------------------------------------------
/dev/experiments/comparison-name-taggers/bert1.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline
4 |
5 | model_name = 'dslim/bert-large-NER'
6 |
7 | bert_tokenizer = AutoTokenizer.from_pretrained(model_name)
8 | bert_model = AutoModelForTokenClassification.from_pretrained(model_name)
9 |
10 | nlp = pipeline('ner', model=bert_model, tokenizer=bert_tokenizer)
11 |
12 | from pprint import pprint
13 | pprint(nlp('Martin Luther King, Jr.'))
14 |
15 | breakpoint()
16 |
--------------------------------------------------------------------------------
/dev/experiments/comparison-name-taggers/bert2.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | from transformers import AutoTokenizer, AutoModelForTokenClassification
4 | from transformers import pipeline
5 |
6 | model_name = "Davlan/distilbert-base-multilingual-cased-ner-hrl"
7 |
8 | tokenizer = AutoTokenizer.from_pretrained(model_name)
9 | model = AutoModelForTokenClassification.from_pretrained(model_name)
10 | nlp = pipeline("ner", model=model, tokenizer=tokenizer, aggregation_strategy="max")
11 |
12 | from pprint import pprint
13 | pprint(nlp('Martin Luther King, Jr.'))
14 | breakpoint()
15 |
--------------------------------------------------------------------------------
/dev/experiments/comparison-name-taggers/bert3.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | from transformers import AutoTokenizer, AutoModelForTokenClassification
4 | from transformers import pipeline
5 |
6 | tokenizer = AutoTokenizer.from_pretrained("xlm-roberta-large-finetuned-conll03-english")
7 | model = AutoModelForTokenClassification.from_pretrained("xlm-roberta-large-finetuned-conll03-english")
8 | classifier = pipeline("ner", model=model, tokenizer=tokenizer)
9 |
10 | from pprint import pprint
11 | pprint(classifier('Martin Luther King, Jr.'))
12 | breakpoint()
13 |
--------------------------------------------------------------------------------
/dev/experiments/comparison-name-taggers/h.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | # import requests
4 |
5 | # API_URL = "https://api-inference.huggingface.co/models/opensource/extract_names"
6 | # headers = {"Authorization": f"Bearer {API_TOKEN}"}
7 |
8 | # def query(payload):
9 | # response = requests.post(API_URL, headers=headers, json=payload)
10 | # return response.json()
11 |
12 | # output = query({
13 | # "inputs": "My name is Sarah Jessica Parker but you can call me Jessica",
14 | # })
15 |
16 |
17 | from transformers import AutoTokenizer, AutoModelForTokenClassification
18 |
19 | model_name = "opensource/extract_names"
20 |
21 | tokenizer = AutoTokenizer.from_pretrained(model_name)
22 |
23 | model = AutoModelForTokenClassification.from_pretrained(model_name)
24 |
25 | breakpoint()
26 |
--------------------------------------------------------------------------------
/dev/experiments/comparison-name-taggers/n.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | from nameparser import HumanName
4 | from pprint import pprint
5 | pprint(HumanName('Martin Luther King, Jr.'))
6 | pprint(HumanName('Mike Hucka'))
7 | pprint(HumanName('Maria Teresa García Ramírez de Arroyo'))
8 | breakpoint()
9 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/get-top-github-contributors-china.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # Summary: print names of top GitHub contributors from China.
3 | # Data from https://github.com/gayanvoice/top-github-users
4 |
5 | import pandas as pd
6 | import lxml
7 | import string
8 |
9 | base_url = 'https://raw.githubusercontent.com/gayanvoice/top-github-users/main/markdown/public_contributions'
10 | page_url = f'{base_url}/china.md'
11 |
12 | # Despite that the page is .md, the table inside it is actually in raw HTML.
13 | page = pd.read_html(page_url, encoding='UTF-8')
14 | table = page[3]
15 |
16 | # Remove non-Korean script characters.
17 | remove_latin = str.maketrans('', '', string.printable)
18 |
19 | names = [name.translate(remove_latin) for name in table['Name']]
20 | names = [nonblank for nonblank in names if nonblank]
21 | print(*names, sep='\n')
22 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/get-top-github-contributors-japan.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # Summary: print names of top South Korean GitHub contributors.
3 | # Data from https://github.com/gayanvoice/top-github-users
4 |
5 | import pandas as pd
6 | import lxml
7 | import string
8 |
9 | base_url = 'https://raw.githubusercontent.com/gayanvoice/top-github-users/main/markdown/public_contributions'
10 | page_url = f'{base_url}/japan.md'
11 |
12 | # Despite that the page is .md, the table inside it is actually in raw HTML.
13 | page = pd.read_html(page_url, encoding='UTF-8')
14 | table = page[3]
15 |
16 | # Remove non-Korean script characters.
17 | remove_latin = str.maketrans('', '', string.printable)
18 |
19 | names = [name.translate(remove_latin) for name in table['Name']]
20 | names = [nonblank for nonblank in names if nonblank]
21 | print(*names, sep='\n')
22 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/get-top-github-contributors-korea.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # Summary: print names of top South Korean GitHub contributors.
3 | # Data from https://github.com/gayanvoice/top-github-users
4 |
5 | import pandas as pd
6 | import lxml
7 | import string
8 |
9 | base_url = 'https://raw.githubusercontent.com/gayanvoice/top-github-users/main/markdown/public_contributions'
10 | page_url = f'{base_url}/south_korea.md'
11 |
12 | # Despite that the page is .md, the table inside it is actually in raw HTML.
13 | page = pd.read_html(page_url, encoding='UTF-8')
14 | table = page[3]
15 |
16 | # Remove non-Korean script characters.
17 | remove_latin = str.maketrans('', '', string.printable)
18 |
19 | names = [name.translate(remove_latin) for name in table['Name']]
20 | names = [nonblank for nonblank in names if nonblank]
21 | print(*names, sep='\n')
22 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/github-top-chinese-contributors.txt:
--------------------------------------------------------------------------------
1 | 布客飞龙
2 | 小弟调调
3 | 芋道源码
4 | 三咲智子
5 | 题叶
6 | 王下邀月熊
7 | 张炎泼
8 | 徐明
9 | 灵茶山艾府
10 | 王诗翔
11 | 云游君
12 | 吴晟
13 | 卡色
14 | 罗泽轩
15 | 贤心
16 | 前端开发博客
17 | 李鼎
18 | 响马
19 | 管宜尧
20 | 辉鸭蛋
21 | 云风
22 | 伊撒尔
23 | 依云
24 | 程序员
25 | 大帅老猿
26 | 阿崔
27 | 吴多益
28 | 荣顶
29 | 李宗英
30 | 安正超
31 | 彭于斌
32 | 大漠穷秋
33 | 文翼
34 | 曾哥
35 | 骷髅头
36 | 崔庆才丨静觅
37 | 一蓑烟雨
38 | 钝悟
39 | 李靖
40 | 迷渡
41 | 游游游
42 | 云谦
43 | 马三小伙儿
44 | 白宦成
45 | 童鞋提不起劲
46 | 刘炬光
47 | 居戎氏
48 | 鹤翔万里
49 | 张涛
50 | 虫师
51 | 郭飞
52 | 谭光志
53 | 魔法
54 | 颜海镜
55 | 双愚
56 | 陈夏明
57 | 老马啸西风
58 | 黄玄
59 | 一丝
60 | 乐平
61 | 达峰的夏天
62 | 刘丹冰
63 | 庄表伟
64 | 张风捷特烈
65 | 路人甲
66 | 程序员鱼皮
67 | 残页
68 | 吕立青
69 | 杨琼璞
70 | 程序员欣宸
71 | 簞純
72 | 闲耘™
73 | 轮子哥
74 | 阳明
75 | 方志朋
76 | 削微寒
77 | 剧中人
78 | 染陌同学
79 | 程序员
80 | 一个有毅力的吃货
81 | 千古壹号
82 | 程序员泥瓦匠
83 | 杨尚川
84 | 编程吴彦祖代码蔡徐坤
85 | 陌竹
86 | 黄健宏
87 | 杨充
88 | 脉脉不得语
89 | 夜莺
90 | 离谱
91 | 编程指北
92 | 蓝色的秋风
93 | 李文周
94 | 若川
95 | 王浩
96 | 薛翔
97 | 东方有鱼名为咸
98 | 朱天龙
99 | 工业聚
100 | 小林
101 | 吴海超
102 | 程序猿
103 | 江南一点雨
104 | 暴走的鑫鑫
105 | 黄子毅
106 | 言肆
107 | 秦宇航
108 | 糖饼
109 | 易容
110 | 咕咚
111 | 重剑无锋
112 | 全栈然叔
113 | 老齐
114 | 小二
115 | 余凡
116 | 景彬
117 | 艾伦
118 | 新运维社区
119 | 猫开
120 | 云云酱
121 | 施展
122 | 天猪
123 | 狼叔
124 | 王福朋
125 | 吖猩
126 | 邓维佳
127 | 前端小武
128 | 刘彦玮
129 | 骆昊
130 | 许雪里
131 | 徐小夕
132 | 程序员大目
133 | 煎鱼
134 | 字节流动
135 | 明城
136 | 舒克·贝塔
137 | 江小湖
138 | 陆泽西
139 | 吕文翰
140 | 泉哥
141 | 技术胖
142 | 村长
143 | 代码家
144 | 冴羽
145 | 林鑫
146 | 林晨
147 | 阿拉斯加大闸蟹
148 | 見える
149 | 房燕良
150 | 第一名的小蝌蚪
151 | 牛さん
152 | 杨萧玉
153 | 陈小缘
154 | 高云墨智
155 | 晋先森
156 | 鱼哥
157 | 达达
158 | 梦宇
159 | 程序亦非猿
160 | 砖家
161 | 葫芦娃
162 | 素十八
163 | 欧阳大哥
164 | 华仔
165 | 胡中元
166 | 半桶水
167 | 碎碎酱
168 | 三水清
169 | 树朾
170 | 门心叼龙
171 | 痕迹
172 | 浪里行舟
173 | 梦里茶
174 | 张鸿洋
175 | 微醺岁月
176 | 黄伟平
177 | 张恕征
178 | 计算机视觉
179 | 袁宵
180 | 稚晖
181 | 花裤衩
182 | 纯洁的微笑
183 | 吴师兄学算法
184 | 开源中国
185 | 梁少峰
186 | 易枭寒
187 | 豪情
188 | 范凯
189 | 郭永峰
190 | 隐形人真忙
191 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/github-top-contributors-korean.txt:
--------------------------------------------------------------------------------
1 | 유용민
2 | 정승훈
3 | 도경
4 | 이정호
5 | 박현우
6 | 김성길
7 | 깃짱
8 | 전민재
9 | 안예성
10 | 구영표
11 | 박준현
12 | 변찬우
13 | 이은비
14 | 권강빈
15 | 洪民憙
16 | 정현수
17 | 최미래
18 | 백승하
19 | 스타샤
20 | 신수형
21 | 임우찬
22 | 신종화
23 | 이강욱
24 | 윤정민
25 | 이석호
26 | 김지현
27 | 전해성
28 | 이정호
29 | 심미진
30 | 웹스토리보이
31 | 이수진
32 | 김서진
33 | 최민재
34 | 황준승
35 | 백여우
36 | 전해림
37 | 니콜라스
38 | 박준현
39 | 김노트
40 | 강대현
41 | 김재호
42 | 김세현
43 | 임세현
44 | 시니어코딩
45 | 이정은
46 | 김준환
47 | 한규진
48 | 신준서
49 | 강지석
50 | 김승우
51 | 테디
52 | 고석진
53 | 이정민
54 | 임동현
55 | 권용빈
56 | 차승호
57 | 나상우
58 | 이규진빌규진
59 | 박찬인
60 | 김한수
61 | 차경민
62 | 김도형
63 | 홍정현
64 | 소연
65 | 우준성
66 | 이선우
67 | 이원중
68 | 강수진
69 | 정우일
70 | 박우빈
71 | 황성현
72 | 조성동
73 | 정찬효
74 | 박우림
75 | 페르난도
76 | 레이크한영수
77 | 주엽
78 | 정석호
79 | 강성진
80 | 정시원
81 | 승민
82 | 김나영
83 | 이재하
84 | 정성민
85 | 전지환
86 | 재이다
87 | 김민혁
88 | 이정연
89 | 조용주
90 | 사이먼
91 | 프로그래머스교육팀
92 | 토르
93 | 태민
94 | 이안
95 | 아구몬
96 | 안성현
97 | 이승우
98 | 양윤재
99 | 박창주
100 | 이승규
101 | 이준혁
102 | 강종연
103 | 박연오
104 | 서울정보소통광장
105 | 조은
106 | 정건우
107 | 류성두
108 | 노종원
109 | 小河
110 | 서현석
111 | 홍영준
112 | 신백균
113 | 령이
114 | 이동영
115 | 신중빈
116 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/test-spacy-chinese.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import spacy
4 |
5 | nlp = spacy.load('zh_core_web_lg')
6 |
7 | with open('../../person-names/chinese-surnames.txt', 'r') as file:
8 | names = file.read().splitlines()
9 |
10 | def has_entities(result):
11 | return result if result.ents else None
12 |
13 | results = [nlp(n) for n in names]
14 | labels = [x.ents[0].label_ for x in filter(has_entities, results)]
15 |
16 | percent = ( len(labels)/len(names) )*100
17 | print(f'Labeled {len(labels)} out of {len(names)} names ({percent:3.1f}%)')
18 |
19 | correct = sum(1 for value in labels if value == 'PERSON')
20 | incorrect = len(labels) - correct
21 |
22 | percent_correct = ( correct/len(names) )*100
23 | print(f'Correct: {correct} out of {len(labels)} labels ({percent_correct:3.1f}% of total)')
24 |
25 | # print('Test')
26 |
27 | # import regex
28 | # p = regex.compile(r'\L', alternatives=names)
29 | # test = '吴晟'
30 | # print(p.search(test))
31 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/test-spacy-japanese.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3 -u
2 |
3 | import sys
4 |
5 | # ja_ginza
6 | # ja_ginza_electra
7 | # ja_core_news_lg
8 | # ja_core_news_trf
9 |
10 | if len(sys.argv) < 2:
11 | exit('Need one argument: a model name')
12 |
13 | model = sys.argv[1]
14 |
15 | import spacy
16 | print(f'Loading spacy model {model} ...')
17 | nlp = spacy.load(model)
18 | print(f'Loading spacy model {model} ... Done.')
19 |
20 | with open('../../person-names/japanese-surnames.txt', 'r') as file:
21 | names = file.read().splitlines()
22 |
23 | names_subset = names[::10]
24 |
25 | def spacy_result(name):
26 | print('.', end='')
27 | return nlp(name)
28 |
29 | def has_entities(result):
30 | return result if result.ents else None
31 |
32 | results = [spacy_result(n) for n in names_subset]
33 | labels = [x.ents[0].label_ for x in filter(has_entities, results)]
34 |
35 | percent = ( len(labels)/len(names_subset) )*100
36 | print(f'Labeled {len(labels)} out of {len(names_subset)} names ({percent:3.1f}%)')
37 |
38 | correct = sum(1 for value in labels if value.lower() == 'person')
39 | incorrect = len(labels) - correct
40 |
41 | percent_correct = ( correct/len(names_subset) )*100
42 | print(f'Correct: {correct} out of {len(labels)} labels ({percent_correct:3.1f}% of total)')
43 |
--------------------------------------------------------------------------------
/dev/experiments/detect-language/test-spacy-korean.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import spacy
4 |
5 | nlp = spacy.load('ko_core_news_lg')
6 |
7 | with open('korean.txt', 'r') as file:
8 | names = file.read().splitlines()
9 |
10 | def has_entities(result):
11 | return result if result.ents else None
12 |
13 | results = [nlp(n) for n in names]
14 | labels = [x.ents[0].label_ for x in filter(has_entities, results)]
15 |
16 | percent = ( len(labels)/len(names) )*100
17 | print(f'Labeled {len(labels)} out of {len(names)} names ({percent:3.1f}%)')
18 |
19 | correct = sum(1 for value in labels if value == 'PS')
20 | incorrect = len(labels) - correct
21 |
22 | percent_correct = ( correct/len(names) )*100
23 | print(f'Correct: {correct} out of {len(labels)} labels ({percent_correct:3.1f}% of total)')
24 |
--------------------------------------------------------------------------------
/dev/experiments/graphql-test.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | from gql import gql, Client
4 | from gql.transport.aiohttp import AIOHTTPTransport
5 |
6 | # Select your transport with a defined url endpoint
7 | transport = AIOHTTPTransport(url='https://api.github.com/graphql')
8 |
9 | # Create a GraphQL client using the defined transport
10 | client = Client(transport=transport, fetch_schema_from_transport=True)
11 |
12 | # Provide a GraphQL query
13 | query = gql('''
14 | {
15 | search(query: "type:org", type: USER, first: 100) {
16 | userCount
17 | nodes {
18 | ... on Organization {
19 | name
20 | createdAt
21 | description
22 | }
23 | }
24 | }
25 | }
26 | ''')
27 |
28 | # Execute the query on the transport
29 | result = client.execute(query)
30 | print(result)
31 |
--------------------------------------------------------------------------------
/dev/experiments/loading-big-set/testpickle.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import gzip
4 | import pickle
5 | from commonpy.data_structures import CaseFoldSet
6 | from timeit import timeit
7 |
8 |
9 | def read_from_file():
10 | orgs = CaseFoldSet()
11 | with open('github-orgs.txt', 'r') as f:
12 | for line in f.readlines():
13 | orgs.add(line)
14 | return orgs
15 |
16 |
17 | def make_pickle():
18 | orgs = CaseFoldSet()
19 | with open('github-orgs.txt', 'r') as f:
20 | for line in f.readlines():
21 | orgs.add(line)
22 | with open('pickle.p', 'wb') as f:
23 | pickle.dump(orgs, f)
24 |
25 |
26 | def read_from_pickle():
27 | with open('pickle.p', 'rb') as f:
28 | return pickle.load(f)
29 |
30 |
31 | def read_from_gzipped_pickle():
32 | with gzip.open('pickle.p.gz', 'rb') as pickle_file:
33 | return pickle.load(pickle_file)
34 |
35 |
36 | print('file = ', timeit(read_from_file, number=10))
37 | print('pickle = ', timeit(read_from_pickle, number=10))
38 | print('gzipped pickle = ', timeit(read_from_gzipped_pickle, number=10))
39 |
--------------------------------------------------------------------------------
/dev/experiments/validation/README.md:
--------------------------------------------------------------------------------
1 | # Schema validation notes
2 |
3 | Early on, I thought that records would come in DataCite 4.3 format. However, it turns out that InvenioRDM does not use DataCite record format per se; it uses something _compatible_ with DataCite. The upshot is that doing schema validation using DataCite schemas doesn't help, and in addition, it's not clear exactly what schema version is used in any given InvenioRDM installation. So, the current version of IGA doesn't do JSON schema validation. The code I started to write is in this directory, in case it's ever useful in the future.
4 |
--------------------------------------------------------------------------------
/dev/experiments/validation/data/README.md:
--------------------------------------------------------------------------------
1 | # DataCite 4.3 schema
2 |
3 | This schema was copied from the DataCite GitHub repository.
4 |
--------------------------------------------------------------------------------
/dev/experiments/validation/validation.py:
--------------------------------------------------------------------------------
1 | from os import path
2 | from iga.exceptions import InternalError
3 |
4 | _SCHEMA_PATH = path.join(path.dirname(__file__), 'data/datacite_4.3_schema.json')
5 |
6 | def valid_record(record):
7 | '''Return True if the given record is valid.'''
8 | import json
9 | import jsonschema
10 |
11 | # Step 1: do basic JSON validation.
12 | try:
13 | record_json = json.loads(record)
14 | except json.decoder.JSONDecodeError as ex:
15 | log('given record failed to load using Python json library: ' + str(ex))
16 | return False
17 |
18 | # Step 2: validate against DataCite JSON schema.
19 | try:
20 | with open(_SCHEMA_PATH, 'r') as schema_file:
21 | datacite_schema = schema_file.read()
22 | schema_json = json.loads(datacite_schema)
23 | jsonschema.validate(instance=record_json, schema=schema_json)
24 | except OSError as ex:
25 | raise InternalError('Unable to read internal JSON schema: ' + str(ex))
26 | except json.decoder.JSONDecodeError as ex:
27 | raise InternalError('Internal JSON schema is corrupted: ' + str(ex))
28 | except jsonschema.exceptions.ValidationError as ex:
29 | log('given record failed schema validation: ' + str(ex))
30 | return False
31 | return True
32 |
33 |
--------------------------------------------------------------------------------
/dev/format-descriptions/citation-cff/README.md:
--------------------------------------------------------------------------------
1 | # Citation File Format schema
2 |
3 | The file [`schema-guide.md`](schema-guide.md) in this directory is a copy of the following file (as it existed on 2023-04-18), known as the _Guide to Citation File Format schema version 1.2.0_.
4 |
5 | https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md
6 |
7 | The copy here is for easy access during development of IGA.
8 |
--------------------------------------------------------------------------------
/dev/format-descriptions/codemeta/reference-codemeta-crosswalk.numbers:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/dev/format-descriptions/codemeta/reference-codemeta-crosswalk.numbers
--------------------------------------------------------------------------------
/dev/format-descriptions/datacite/DataCite-MetadataKernel_v4.4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/dev/format-descriptions/datacite/DataCite-MetadataKernel_v4.4.pdf
--------------------------------------------------------------------------------
/dev/format-descriptions/datacite/README.md:
--------------------------------------------------------------------------------
1 | # DataCite metadata schema
2 |
3 | The PDF file in this directory is a local copy of the following file (as it existed on 2023-04-18), kept in this directory for easy access during development of IGA:
4 |
5 | https://schema.datacite.org/meta/kernel-4.4/doc/DataCite-MetadataKernel_v4.4.pdf
6 |
7 | Full reference:
8 |
9 | DataCite Metadata Working Group. (2021). DataCite Metadata Schema Documentation for the Publication and Citation of Research Data and Other Research Outputs. Version 4.4. DataCite e.V. https://doi.org/10.14454/3w3z-sa82
10 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/inveniordm-field-mapping.numbers:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/dev/format-descriptions/inveniordm/inveniordm-field-mapping.numbers
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/README.md:
--------------------------------------------------------------------------------
1 | # InvenioRDM vocabularies as of 2023-02-11
2 |
3 | The values of some controlled vocabulary terms are hardwired in IGA, and others are obtained at run-time using the [`caltechdata_api`](https://github.com/caltechlibrary/caltechdata_api) package. The files in this directory are the terms in some of the vocabularies as they existed on 2023-02-11, for reference during software development of IGA. (These files are not loaded into IGA.)
4 |
5 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/dates.txt:
--------------------------------------------------------------------------------
1 | accepted
2 | available
3 | collected
4 | copyrighted
5 | created
6 | issued
7 | other
8 | submitted
9 | updated
10 | valid
11 | withdrawn
12 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/description-types.txt:
--------------------------------------------------------------------------------
1 | abstract
2 | methods
3 | series-information
4 | table-of-contents
5 | technical-info
6 | other
7 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/id-types.txt:
--------------------------------------------------------------------------------
1 | ark
2 | arxiv
3 | bibcode
4 | cdid
5 | doi
6 | dsa-110-id
7 | ean13
8 | eissn
9 | handle
10 | igsn
11 | isbn
12 | issn
13 | istc
14 | lissn
15 | lsid
16 | pmid
17 | purl
18 | tiltid
19 | upc
20 | url
21 | urn
22 | w3id
23 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/relations.txt:
--------------------------------------------------------------------------------
1 | cites
2 | compiles
3 | continues
4 | describes
5 | documents
6 | haspart
7 | hasversion
8 | iscompiledby
9 | iscontinuedby
10 | isnewversionof
11 | isobsoletedby
12 | isoriginalformof
13 | ispreviousversionof
14 | isreviewedby
15 | obsoletes
16 | reviews
17 |
18 | iscitedby
19 | ✔ isderivedfrom
20 | ✔ isdescribedby
21 | ✔ isdocumentedby
22 | ✔ isidenticalto
23 | ispartof
24 | ✔ isreferencedby
25 | isrequiredby
26 | issourceof
27 | issupplementedby
28 | issupplementto
29 | ✔ isvariantformof
30 | ✔ isversionof
31 | references
32 | requires
33 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/resources.txt:
--------------------------------------------------------------------------------
1 | publication
2 | publication-annotationcollection
3 | publication-book
4 | publication-section
5 | publication-conferencepaper
6 | publication-datamanagementplan
7 | publication-article
8 | publication-patent
9 | publication-preprint
10 | publication-deliverable
11 | publication-milestone
12 | publication-proposal
13 | publication-report
14 | publication-softwaredocumentation
15 | publication-taxonomictreatment
16 | publication-technicalnote
17 | publication-thesis
18 | publication-workingpaper
19 | publication-other
20 | poster
21 | presentation
22 | dataset
23 | image
24 | image-figure
25 | image-plot
26 | image-drawing
27 | image-map
28 | image-photo
29 | image-other
30 | video
31 | software
32 | lesson
33 | other
34 | model
35 | interactive-resource
36 | workflow
37 | collection
38 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/roles.txt:
--------------------------------------------------------------------------------
1 | contactperson
2 | datacollector
3 | datacurator
4 | datamanager
5 | distributor
6 | editor
7 | hostinginstitution
8 | other
9 | producer
10 | projectleader
11 | projectmanager
12 | projectmember
13 | registrationagency
14 | registrationauthority
15 | relatedperson
16 | researcher
17 | researchgroup
18 | rightsholder
19 | sponsor
20 | supervisor
21 | workpackageleader
22 |
--------------------------------------------------------------------------------
/dev/format-descriptions/inveniordm/vocabularies/title-types.txt:
--------------------------------------------------------------------------------
1 | alternative-title
2 | subtitle
3 | translated-title
4 | other
5 |
--------------------------------------------------------------------------------
/dev/person-names/enamdict/JMnedict.xml.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/dev/person-names/enamdict/JMnedict.xml.gz
--------------------------------------------------------------------------------
/dev/person-names/wikipedia/parse-common-names.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import pandas as pd
4 | import lxml
5 | import string
6 | import itertools
7 |
8 | url = 'https://en.wikipedia.org/wiki/List_of_common_Chinese_surnames'
9 | page = pd.read_html(url, encoding='UTF-8')
10 |
11 | names = set()
12 |
13 | # Table "Surname list"
14 |
15 | table = page[1]
16 | names.update(table['Character'].values[:, 0].tolist())
17 | names.update(table['Character'].values[:, 1].tolist())
18 |
19 | # Table "400 character list"
20 |
21 | table = page[2]
22 | names.update(table['Name'].values[:].tolist())
23 |
24 | # Table "Taiwan"
25 |
26 | table = page[3]
27 | names.update(table['Character'].values[:, 0].tolist())
28 | names.update(table['Character'].values[:, 1].tolist())
29 |
30 | # Table "Philippines"
31 |
32 | table = page[4]
33 | # This one has slashes in the values.
34 | list_of_lists = [item.split('/') for item in table['Character(s)'].values.tolist()]
35 | flattened = itertools.chain(*list_of_lists)
36 | names.update(flattened)
37 |
38 | # Table "Ontario"
39 |
40 | table = page[5]
41 | names.update(table['Character(s)'].values[:, 0].tolist())
42 | names.update(table['Character(s)'].values[:, 1].tolist())
43 |
44 | # Table "Newer version"
45 |
46 | table = page[8]
47 | names.update(table['Character(s)'].values[:, 0].tolist())
48 | names.update(table['Character(s)'].values[:, 1].tolist())
49 |
50 | # Table "United States"
51 |
52 | table = page[9]
53 | names.update(table['Character(s)'].values[:, 0].tolist())
54 | names.update(table['Character(s)'].values[:, 1].tolist())
55 |
56 | print(*names, sep='\n')
57 |
--------------------------------------------------------------------------------
/docs/Makefile:
--------------------------------------------------------------------------------
1 | # @file Makefile
2 | # @brief Makefile for building docs using Sphinx and MyST
3 | # @created 2021-01-25
4 | # @license Please see the file named LICENSE in the project directory
5 | # @website https://github.com/caltechlibrary/iga
6 |
7 | # Before we go any further, test if certain programs are available.
8 | # The following is based on the approach posted by Jonathan Ben-Avraham to
9 | # Stack Overflow in 2014 at https://stackoverflow.com/a/25668869
10 |
11 | PROGRAMS_NEEDED = sphinx-build
12 | TEST := $(foreach p,$(PROGRAMS_NEEDED),\
13 | $(if $(shell which $(p)),_,$(error Cannot find program "$(p)")))
14 |
15 |
16 | # Gather values that we need ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 |
18 | # You can set the following variables from the command line, and also from
19 | # the environment for the first two.
20 |
21 | SPHINXOPTS ?=
22 | SPHINXBUILD ?= sphinx-build
23 | SPHINXAUTO = sphinx-autobuild
24 | SRCDIR = .
25 | BUILDDIR = _build
26 |
27 | # Actions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28 |
29 | # Put it first so that "make" without argument is like "make help".
30 | help:
31 | @echo "Available commands:"
32 | @echo " auto to watch source directory & rebuild docs if files change" |\
33 | expand -t 14
34 | @$(SPHINXBUILD) -M help "$(SRCDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) |\
35 | egrep -v '^Sphinx|Please' | sort | expand -t 20
36 |
37 | auto autobuild live livehtml:
38 | @$(SPHINXAUTO) "$(SRCDIR)" "$(BUILDDIR)"/html $(SPHINXOPTS) $(O)
39 |
40 | # Catch-all target: route all unknown targets to Sphinx using the new
41 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
42 | %: Makefile
43 | @$(SPHINXBUILD) -M $@ "$(SRCDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
44 |
45 |
46 | # Cleanup and miscellaneous directives ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 |
48 | .PHONY: help auto autobuild livehtml Makefile
49 |
--------------------------------------------------------------------------------
/docs/_static/media/caltech-round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/caltech-round.png
--------------------------------------------------------------------------------
/docs/_static/media/cloud-upload-reversed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/cloud-upload-reversed.png
--------------------------------------------------------------------------------
/docs/_static/media/cloud-upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/cloud-upload.png
--------------------------------------------------------------------------------
/docs/_static/media/cloud-upload.svg:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/docs/_static/media/example-github-citation.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/example-github-citation.jpg
--------------------------------------------------------------------------------
/docs/_static/media/example-github-release.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/example-github-release.jpg
--------------------------------------------------------------------------------
/docs/_static/media/example-record-landing-page.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/example-record-landing-page.jpg
--------------------------------------------------------------------------------
/docs/_static/media/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/favicon.ico
--------------------------------------------------------------------------------
/docs/_static/media/get-invenio-pat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/get-invenio-pat.png
--------------------------------------------------------------------------------
/docs/_static/media/gh-workflow-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/gh-workflow-list.png
--------------------------------------------------------------------------------
/docs/_static/media/gh-workflow-run-options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/gh-workflow-run-options.png
--------------------------------------------------------------------------------
/docs/_static/media/gh-workflow-run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/gh-workflow-run.png
--------------------------------------------------------------------------------
/docs/_static/media/github-action-details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-action-details.png
--------------------------------------------------------------------------------
/docs/_static/media/github-actions-all-workflows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-actions-all-workflows.png
--------------------------------------------------------------------------------
/docs/_static/media/github-final-secrets-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-final-secrets-list.png
--------------------------------------------------------------------------------
/docs/_static/media/github-notifications-actions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-notifications-actions.png
--------------------------------------------------------------------------------
/docs/_static/media/github-notifications-link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-notifications-link.png
--------------------------------------------------------------------------------
/docs/_static/media/github-notifications-selections.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-notifications-selections.png
--------------------------------------------------------------------------------
/docs/_static/media/github-run-workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-run-workflow.png
--------------------------------------------------------------------------------
/docs/_static/media/github-running-workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-running-workflow.png
--------------------------------------------------------------------------------
/docs/_static/media/github-secrets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-secrets.png
--------------------------------------------------------------------------------
/docs/_static/media/github-sidebar-secrets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-sidebar-secrets.png
--------------------------------------------------------------------------------
/docs/_static/media/github-tabs-actions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-tabs-actions.png
--------------------------------------------------------------------------------
/docs/_static/media/github-tabs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-tabs.png
--------------------------------------------------------------------------------
/docs/_static/media/github-workflow-options-circled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-workflow-options-circled.png
--------------------------------------------------------------------------------
/docs/_static/media/github-workflow-options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/github-workflow-options.png
--------------------------------------------------------------------------------
/docs/_static/media/inveniordm-version-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/inveniordm-version-example.png
--------------------------------------------------------------------------------
/docs/_static/media/new-pat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/docs/_static/media/new-pat.png
--------------------------------------------------------------------------------
/docs/colophon.md:
--------------------------------------------------------------------------------
1 | # Colophon
2 |
3 | [Michael Hucka](https://www.cds.caltech.edu/~mhucka/) wrote the IGA documentation using the [Sphinx](https://www.sphinx-doc.org) document generator together with [MyST-flavored Markdown](https://myst-parser.readthedocs.io/en/latest/). The theme is the [Material theme for Sphinx](https://bashtage.github.io/sphinx-material/), with light customizations such as the use of Google's [Atkinson Hyperlegible](https://fonts.google.com/specimen/Atkinson+Hyperlegible) font. A [GitHub Action](https://github.com/caltechlibrary/iga/blob/main/.github/workflows/build-sphinx.yml) takes care of creating the formatted version of the documentation and hosting it on GitHub.io at https://caltechlibrary.github.io/iga. The formatted output can also be produced manually using commands implemented in the `Makefile` located in the [`docs/`](https://github.com/caltechlibrary/iga/tree/main/docs) subdirectory of the IGA source code repository.
4 |
5 | The vector artwork of an arrow pointing to a cloud, used as for the logo and icon for IGA, came from GitHub.
6 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # InvenioRDM GitHub Archiver
2 |
3 | [InvenioRDM](https://inveniosoftware.org/products/rdm/) is used by many institutional repositories such as [CaltechDATA](https://data.caltech.edu) to let users preserve software and data in a long-term archive managed by their institution. Depositing software and/or data into these repositories requires the creation of detailed metadata records – a tedious and error-prone process if done manually. This is where the [_InvenioRDM GitHub Archiver_](https://github.com/caltechlibrary/iga) (IGA) comes in.
4 |
5 | IGA can create metadata records and send releases from GitHub to an InvenioRDM-based repository server. It can be run as a command line program; it also can be set up as a [GitHub Action](https://docs.github.com/en/actions) to archive GitHub releases in InvenioRDM automatically each time they are made.
6 |
7 |
8 |
9 | ➜
10 |
11 | IGA sends metadata and assets from GitHub to an InvenioRDM server.
12 |
13 |
14 |
15 | ## Sections
16 |
17 | ```{toctree}
18 | ---
19 | maxdepth: 2
20 | ---
21 | introduction.md
22 | installation.md
23 | quick-start.md
24 | cli-usage.md
25 | gha-usage.md
26 | tips.md
27 | glossary.md
28 | colophon.md
29 | appendix.md
30 | ```
31 |
--------------------------------------------------------------------------------
/iga/__init__.py:
--------------------------------------------------------------------------------
1 | '''
2 | __init__.py for iga
3 |
4 | This file is part of https://github.com/caltechlibrary/iga/.
5 |
6 | Copyright (c) 2022-2024 by the California Institute of Technology. This code
7 | is open-source software released under a BSD-type license. Please see the
8 | file "LICENSE" for more information.
9 | '''
10 |
11 | # Package metadata
12 | # .............................................................................
13 | #
14 | # ╭────────────────────── Notice ── Notice ── Notice ─────────────────────╮
15 | # │ The following values are automatically updated at every release │
16 | # │ by the Makefile. Manual changes to these values will be lost. │
17 | # ╰────────────────────── Notice ── Notice ── Notice ─────────────────────╯
18 |
19 | __version__ = '1.3.0'
20 | __description__ = 'The InvenioRDM GitHub Archiver (IGA) automatically archives GitHub releases in an InvenioRDM repository.'
21 | __url__ = 'https://caltechlibrary.github.io/iga'
22 | __author__ = 'Michael Hucka'
23 | __email__ = 'mhucka@caltech.edu'
24 | __license__ = 'https://github.com/caltechlibrary/iga/blob/main/LICENSE'
25 |
26 |
27 | # Miscellaneous utilities.
28 | # .............................................................................
29 |
30 | def print_version():
31 | print(f'{__name__} version {__version__}')
32 | print(f'Authors: {__author__}')
33 | print(f'URL: {__url__}')
34 | print(f'License: {__license__}')
35 |
--------------------------------------------------------------------------------
/iga/__main__.py:
--------------------------------------------------------------------------------
1 | '''
2 | __main__.py: main entry point for IGA.
3 |
4 | This file is part of https://github.com/caltechlibrary/iga/.
5 |
6 | Copyright (c) 2022-2024 by the California Institute of Technology. This code
7 | is open-source software released under a BSD-type license. Please see the
8 | file "LICENSE" for more information.
9 | '''
10 |
11 | import sys
12 | if sys.version_info <= (3, 9):
13 | print('IGA requires Python version 3.9 or higher,')
14 | print('but the current version of Python is ' + str(sys.version_info.major)
15 | + '.' + str(sys.version_info.minor) + '.')
16 | sys.exit(1)
17 |
18 | from iga.cli import cli
19 |
20 |
21 | # The following entry point definition is for the console_scripts keyword
22 | # option to setuptools. The entry point for console_scripts has to be a
23 | # function that takes zero arguments.
24 | def console_scripts_main():
25 | cli()
26 |
27 |
28 | # The following allows users to invoke this using "python3 -m iga".
29 | if __name__ == '__main__':
30 | cli()
31 |
--------------------------------------------------------------------------------
/iga/data/make-pickle-orgs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import sys
4 |
5 | if len(sys.argv) < 3:
6 | print('Usage: make-pickle INPUTTEXTFILE.txt PICKLEOUTPUT.p')
7 | exit(1)
8 |
9 | input_file = sys.argv[1]
10 | output_file = sys.argv[2]
11 |
12 | from commonpy.data_structures import CaseFoldSet
13 | import gzip
14 | from os import path
15 | import pickle
16 |
17 | parent = path.dirname(path.abspath(__file__))
18 | sys.path.append(path.dirname(parent))
19 | sys.path.append(path.dirname(path.dirname(parent)))
20 |
21 | from iga.name_utils import _plain_name
22 |
23 | def names_from_file():
24 | print(f'Reading {input_file} and making a set')
25 | names = CaseFoldSet()
26 | with open(input_file, 'r') as f:
27 | names.update(_plain_name(name) for name in f.read().splitlines())
28 | print(f'Read {len(names)} names from {input_file}')
29 | return names
30 |
31 | print(f'Writing {output_file}')
32 | names = names_from_file()
33 | with open(output_file, 'wb') as f:
34 | pickle.dump(names, f)
35 |
36 | print(f'Wrote {len(names)} names to {output_file}')
37 |
--------------------------------------------------------------------------------
/iga/data/make-pickle-surnames:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import sys
4 |
5 | if len(sys.argv) < 3:
6 | print('Usage: make-pickle INPUTTEXTFILE.txt PICKLEOUTPUT.p')
7 | exit(1)
8 |
9 | input_file = sys.argv[1]
10 | output_file = sys.argv[2]
11 |
12 | from commonpy.data_structures import CaseFoldSet
13 | import gzip
14 | from os import path
15 | import pickle
16 |
17 | parent = path.dirname(path.abspath(__file__))
18 | sys.path.append(path.dirname(parent))
19 | sys.path.append(path.dirname(path.dirname(parent)))
20 |
21 | from iga.name_utils import _plain_name
22 |
23 | def names_from_file():
24 | print(f'Reading {input_file} and making a set')
25 | names = CaseFoldSet()
26 | with open(input_file, 'r') as f:
27 | names.update(f.read().splitlines())
28 | print(f'Read {len(names)} names from {input_file}')
29 | return names
30 |
31 | print(f'Writing {output_file}')
32 | names = names_from_file()
33 | with open(output_file, 'wb') as f:
34 | pickle.dump(names, f)
35 |
36 | print(f'Wrote {len(names)} names to {output_file}')
37 |
--------------------------------------------------------------------------------
/iga/data/org-names.p:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/iga/data/org-names.p
--------------------------------------------------------------------------------
/iga/data/surnames.p:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/iga/data/surnames.p
--------------------------------------------------------------------------------
/iga/exceptions.py:
--------------------------------------------------------------------------------
1 | '''
2 | exceptions.py: exceptions for IGA
3 |
4 | This file is part of https://github.com/caltechlibrary/iga/.
5 |
6 | Copyright (c) 2022-2024 by the California Institute of Technology. This code
7 | is open-source software released under a BSD-type license. Please see the
8 | file "LICENSE" for more information.
9 | '''
10 |
11 |
12 | # Base class.
13 | # .............................................................................
14 | # The base class makes it possible to use a single test to distinguish between
15 | # exceptions generated by IGA and exceptions generated by something else.
16 |
17 | class IGAException(Exception):
18 | '''Base class for IGA exceptions.'''
19 |
20 |
21 | # Exception classes.
22 | # .............................................................................
23 |
24 | class GitHubError(IGAException):
25 | '''GitHub returned an error.'''
26 |
27 |
28 | class InvenioRDMError(IGAException):
29 | '''InvenioRDM returned an error.'''
30 |
31 |
32 | class BadToken(IGAException):
33 | '''Invalid personal access token.'''
34 |
35 |
36 | class MissingData(IGAException):
37 | '''Could not obtain all the required data to create an InvenioRDM record.'''
38 |
39 |
40 | class RecordNotFound(IGAException):
41 | '''Could not find the requested record in the InvenioRDM server.'''
42 |
43 |
44 | class InternalError(IGAException):
45 | '''An internal error occurred in IGA.'''
46 |
--------------------------------------------------------------------------------
/iga/exit_codes.py:
--------------------------------------------------------------------------------
1 | '''
2 | exit_codes.py: define exit codes for program return values
3 |
4 | This file is part of https://github.com/caltechlibrary/iga/.
5 |
6 | Copyright (c) 2022-2024 by the California Institute of Technology. This code
7 | is open-source software released under a BSD-type license. Please see the
8 | file "LICENSE" for more information.
9 | '''
10 |
11 | from aenum import Enum, MultiValue
12 |
13 |
14 | # I adapted the clever approach posted by the author of the Python aenum
15 | # package, Ethan Furman, to Stack Overflow on 2016-03-13 at
16 | # https://stackoverflow.com/a/35964875/743730
17 | # The most important bit is realizing you can define __int__().
18 |
19 | class ExitCode(Enum):
20 | '''Class of exit codes that this program may return.
21 |
22 | The numeric value of a given code can be obtained by using int(). For
23 | example, int(ExitCode.success) will produce 0.
24 | '''
25 |
26 | _init_ = 'value meaning'
27 | _settings_ = MultiValue
28 |
29 | success = 0, "success – program completed normally"
30 | user_interrupt = 1, "the user interrupted the program's execution"
31 | bad_arg = 2, "encountered a bad or missing value for an option"
32 | file_error = 3, "encountered a problem with a file or directory"
33 | github_error = 4, "encountered a problem interacting with GitHub"
34 | inveniordm_error = 5, "encountered a problem interacting with InvenioRDM"
35 | bad_token = 6, "the personal access token was rejected"
36 | exception = 7, "a miscellaneous exception or fatal error occurred"
37 |
38 | def __int__(self):
39 | return self.value
40 |
--------------------------------------------------------------------------------
/iga/text_utils.py:
--------------------------------------------------------------------------------
1 | '''
2 | text_utils.py: misc. utilities for doing stuff with text
3 |
4 | This file is part of https://github.com/caltechlibrary/iga/.
5 |
6 | Copyright (c) 2024 by the California Institute of Technology. This code
7 | is open-source software released under a BSD-type license. Please see the
8 | file "LICENSE" for more information.
9 | '''
10 |
11 |
12 | def cleaned_text(text):
13 | '''Return text that has been mildly cleaned up.
14 |
15 | Whitespace characters are normalized to single spaces, and period
16 | characters are followed by one space.
17 | '''
18 | # Get rid of embedded newlines and related characters.
19 | text = ' '.join(text.splitlines())
20 | # Normalize runs of multiple spaces to one.
21 | return ' '.join(text.split())
22 |
23 |
24 | def without_html(text):
25 | '''Return the given text with HTML tags, if any, removed.'''
26 | from lxml import html
27 | try:
28 | return html.fromstring(text).text_content().strip()
29 | except KeyboardInterrupt:
30 | raise
31 | except Exception: # noqa PIE786
32 | return text
33 |
34 |
35 | # Note: here's the master list of extensions for python-markdown:
36 | # https://github.com/Python-Markdown/markdown/wiki/Third-Party-Extensions
37 |
38 | def html_from_md(md):
39 | '''Convert Markdown content to HTML.'''
40 | from markdown import markdown
41 | return markdown(md, extensions=['pymdownx.superfences',
42 | 'pymdownx.extra',
43 | 'pymdownx.emoji',
44 | 'mdx_breakless_lists',
45 | 'mdx_linkify',
46 | 'markdown_checklist.extension',
47 | ])
48 |
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Naeka
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/README.md:
--------------------------------------------------------------------------------
1 | # APA7 Style for Pybtex
2 |
3 | *This is a fork of [naeka's pybtex-apa-style](https://github.com/naeka/pybtex-apa-style), which targeted APA6*.
4 |
5 | This plugin provides [APA7](https://apastyle.apa.org/) style for Pybtex.
6 |
7 | [Pybtex](https://pybtex.org/) provides Python support for interacting with bibTeX
8 | bibliography data. Style plugins provide support for formatting bibliographies,
9 | similar to the role that `csl` files play for LaTeX.
10 |
11 | ## Installation
12 |
13 | ```shell
14 | $ pip install pybtex pybtex-apa7-style
15 | ```
16 |
17 | ## Usage
18 |
19 | Pybtex uses [Python's plugin system](https://packaging.python.org/en/latest/guides/creating-and-discovering-plugins/).
20 | To use APA7, load it as a plugin as shown in the example below.
21 |
22 | ```python3
23 | from pybtex.plugin import find_plugin
24 | from pybtex.database import parse_file
25 | APA = find_plugin('pybtex.style.formatting', 'apa7')()
26 | HTML = find_plugin('pybtex.backends', 'html')()
27 |
28 | def bib_to_apa7_html(bibfile):
29 | bibliography = parse_file(bibfile, 'bibtex')
30 | formatted_bib = APA.format_bibliography(bibliography)
31 | return "
".join(entry.text.render(HTML) for entry in formatted_bib)
32 | ```
33 |
34 | ## Contributing
35 |
36 | This is a work in progres; APA style is not fully-specified and has endless edge cases.
37 | I would be delighted to receive examples of bibTeX entries which are not formatted correctly
38 | in APA.
39 |
40 | If you clone [this project's repository](https://github.com/cproctor/pybtex-apa7-style), you
41 | can add bibTeX exemplars in `tests/examples` and then run `python tests/test_visual_results.py`.
42 | Open `tests/results.html` to see the resulting APA-formatted HTML.
43 |
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/formatting/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/iga/vendor/pybtex_apa7_style/formatting/__init__.py
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/labels/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/iga/vendor/pybtex_apa7_style/labels/__init__.py
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/names/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caltechlibrary/iga/833415ae5f10ff06c837dedb7a8f91e72f6725fd/iga/vendor/pybtex_apa7_style/names/__init__.py
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/names/firstlast.py:
--------------------------------------------------------------------------------
1 | # -*- coding:Utf-8 -*-
2 | from __future__ import unicode_literals
3 |
4 | from pybtex.style.names import BaseNameStyle, name_part
5 | from pybtex.style.template import join
6 |
7 |
8 | class NameStyle(BaseNameStyle):
9 |
10 | def format(self, person, abbr=False):
11 | r"""
12 | Format names similarly to {vv~}{ll}{, jj}{, f.} in BibTeX.
13 |
14 | >>> from pybtex.database import Person
15 | >>> name = Person(string=r"Charles Louis Xavier Joseph de la Vall{\'e}e Poussin")
16 | >>> firstlast = NameStyle().format
17 |
18 | >>> print(firstlast(name).format().render_as('latex'))
19 | Charles Louis Xavier~Joseph de~la Vall{é}e~Poussin
20 | >>> print(firstlast(name).format().render_as('html'))
21 | Charles Louis Xavier Joseph de la Vallée Poussin
22 |
23 | >>> print(firstlast(name, abbr=True).format().render_as('latex'))
24 | C.~L. X.~J. de~la Vall{é}e~Poussin
25 | >>> print(firstlast(name, abbr=True).format().render_as('html'))
26 | C. L. X. J. de la Vallée Poussin
27 |
28 | >>> name = Person(first='First', last='Last', middle='Middle')
29 | >>> print(firstlast(name).format().render_as('latex'))
30 | First~Middle Last
31 | >>> print(firstlast(name, abbr=True).format().render_as('latex'))
32 | F.~M. Last
33 |
34 | """
35 | return join[
36 | name_part(abbr=abbr)[person.rich_first_names + person.rich_middle_names],
37 | name_part(before=' ')[person.rich_prelast_names],
38 | name_part(before=' ')[person.rich_last_names],
39 | ]
40 |
--------------------------------------------------------------------------------
/iga/vendor/pybtex_apa7_style/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.poetry]
2 | name = "pybtex-apa7-style"
3 | version = "0.1.3"
4 | description = "Provides APA7 style for Pybtex"
5 | readme = "README.md"
6 | authors = ["Chris Proctor "]
7 | homepage = "https://github.com/cproctor/pybtex-apa7-style"
8 | repository = "https://github.com/cproctor/pybtex-apa7-style"
9 | license = "MIT"
10 | classifiers = [
11 | "Operating System :: OS Independent",
12 | "Programming Language :: Python",
13 | "Programming Language :: Python :: 3",
14 | "License :: OSI Approved :: MIT License",
15 | "Topic :: Text Processing :: Markup",
16 | "Topic :: Utilities",
17 | ]
18 | packages = [
19 | { include = "formatting" },
20 | { include = "labels" },
21 | { include = "names" },
22 | ]
23 |
24 | [tool.poetry.dependencies]
25 | python = "^3.9"
26 | pybtex = "^0.24.0"
27 |
28 | [tool.poetry.dev-dependencies]
29 |
30 | [build-system]
31 | requires = ["poetry-core>=1.0.0"]
32 | build-backend = "poetry.core.masonry.api"
33 |
34 | [tool.poetry.plugins."pybtex.style.formatting"]
35 | apa7 = "formatting.apa:APAStyle"
36 |
37 | [tool.poetry.plugins."pybtex.style.labels"]
38 | apa7 = "labels.apa:LabelStyle"
39 |
40 | [tool.poetry.plugins."pybtex.style.names"]
41 | firstlast = "names.firstlast:NameStyle"
42 |
43 |
44 |
--------------------------------------------------------------------------------
/requirements-dev.txt:
--------------------------------------------------------------------------------
1 | # Summary: Python dependencies for IGA for development & testing.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 |
7 | -r requirements.txt
8 | -r requirements-lint.txt
9 |
10 | pytest >= 8.2.0
11 | pytest-cov >= 5.0.0
12 | pytest-mock >= 3.14.0
13 |
14 | twine
15 | wheel
16 |
17 | linkify-it-py
18 | myst-parser
19 | sphinx-autobuild
20 | sphinx-material
21 | sphinxcontrib-mermaid
22 |
--------------------------------------------------------------------------------
/requirements-lint.txt:
--------------------------------------------------------------------------------
1 | # Summary: Python dependencies for linting the codebase.
2 | #
3 | # This set of dependencies is split out from requirements-dev.txt so that
4 | # GitHub Actions can load just this subset and not all the other
5 | # requirements. (IGA has a huge list of requirements and they take a long
6 | # time to install -- a needless waste of time when only running flake8.)
7 | #
8 | # Copyright 2024 California Institute of Technology.
9 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
10 | # Website: https://github.com/caltechlibrary/iga
11 |
12 | flake8 >= 7.0.0
13 | flake8-bugbear >= 24.4.26
14 | flake8-builtins >= 2.5.0
15 | flake8-comprehensions >= 3.14.0
16 | flake8-executable >= 2.1.3
17 | flake8_implicit_str_concat >= 0.4.0
18 | flake8-pie >= 0.16.0
19 | flake8_simplify >= 0.21.0
20 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | # Summary: Python dependencies for IGA.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 |
7 | aenum >= 3.1.15
8 | arrow >= 1.3.0
9 | boltons >= 21.0.0
10 | caltechdata-api >= 1.8.1
11 | commonpy >= 1.13.0
12 | dirtyjson >= 1.0.8
13 | ginza >= 5.2.0
14 | ja_ginza_electra >= 5.2.0
15 | httpx >= 0.23.1
16 | humanize >= 4.9.0
17 | idutils >= 1.2.1
18 | iptools >= 0.7.0
19 | isbnlib >= 3.10.14
20 | jamo >= 0.4.1
21 | json5 >= 0.9.25
22 | latexcodec >= 3.0.0
23 | lingua-language-detector >= 2.0.2
24 | lxml >= 5.2.2
25 | Markdown >= 3.6
26 | markdown-checklist >= 0.4.4
27 | mdx-breakless-lists >= 1.0.1
28 | mdx_linkify >= 2.1
29 | nameparser >= 1.1.3
30 | probablepeople >= 0.5.5
31 | pybtex >= 0.24.0
32 | pybtex-apa7-style >= 0.1.3
33 | pymdown-extensions >= 10.8.1
34 | PyYAML >= 6.0.1
35 | regex >= 2022.3.2
36 | rich-click == 1.7.4
37 | sidetrack >= 2.0.1
38 | spacy >= 3.7.4
39 | spacy-alignments >= 0.9.1
40 | spacy-curated-transformers >= 0.2.2
41 | spacy-legacy >= 3.0.12
42 | spacy-loggers >= 1.0.5
43 | spacy-pkuseg >= 0.0.33
44 | spacy-transformers >= 1.1.9
45 | StringDist >= 1.0.9
46 | url-normalize >= 1.4.3
47 | validators >= 0.28.1
48 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | # Summary: IGA package metadata and PyPI configuration.
2 | #
3 | # Copyright 2024 California Institute of Technology.
4 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
5 | # Website: https://github.com/caltechlibrary/iga
6 |
7 | [metadata]
8 | name = iga
9 | version = 1.3.5
10 | description = The InvenioRDM GitHub Archiver (IGA) automatically archives GitHub releases in an InvenioRDM repository.
11 | author = Tom Morrell
12 | author_email = tmorrell@caltech.edu
13 | license = https://github.com/caltechlibrary/iga/blob/main/LICENSE
14 | license_files = LICENSE
15 | url = https://github.com/caltechlibrary/iga
16 | # The remaining items below are used by PyPI.
17 | project_urls =
18 | Source Code = https://github.com/caltechlibrary/iga
19 | Bug Tracker = https://github.com/caltechlibrary/iga/issues
20 | keywords = Python, applications
21 | classifiers =
22 | Development Status :: 5 - Production/Stable
23 | Environment :: Console
24 | Environment :: No Input/Output (Daemon)
25 | Intended Audience :: Science/Research
26 | Operating System :: MacOS :: MacOS X
27 | Operating System :: POSIX
28 | Operating System :: POSIX :: Linux
29 | Operating System :: Unix
30 | Programming Language :: Python
31 | Programming Language :: Python :: 3.9
32 | long_description = file:README.md
33 | long_description_content_type = text/markdown
34 |
35 | [options]
36 | packages = find:
37 | zip_safe = False
38 | python_requires = >= 3.9
39 |
40 | [options.entry_points]
41 | console_scripts =
42 | iga = iga.__main__:console_scripts_main
43 |
44 | [tool:pytest]
45 | pythonpath = .
46 | testpaths = tests iga
47 | addopts = --cov=iga
48 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # Summary: IGA installation setup.py file.
3 | #
4 | # Note: the full configuration metadata is maintained in setup.cfg, not here.
5 | # This file exists to hook in setup.cfg and requirements.txt, so that the
6 | # requirements don't have to be repeated and so that "python3 setup.py" works.
7 | #
8 | # Copyright 2024 California Institute of Technology.
9 | # License: Modified BSD 3-clause – see file "LICENSE" in the project website.
10 | # Website: https://github.com/caltechlibrary/iga
11 |
12 | from setuptools import setup
13 |
14 |
15 | def requirements(file):
16 | from os import path
17 | required = []
18 | requirements_file = path.join(path.abspath(path.dirname(__file__)), file)
19 | if path.exists(requirements_file):
20 | with open(requirements_file, encoding='utf-8') as f:
21 | required = [ln for ln in filter(str.strip, f.read().splitlines())
22 | if not ln.startswith('#')]
23 | if any(item.startswith(('-', '.', '/')) for item in required):
24 | # The requirements.txt uses pip features. Try to use pip's parser.
25 | try:
26 | from pip._internal.req import parse_requirements
27 | from pip._internal.network.session import PipSession
28 | parsed = parse_requirements(requirements_file, PipSession())
29 | required = [item.requirement for item in parsed]
30 | except ImportError:
31 | # No pip, or not the expected version. Give up & return as-is.
32 | pass
33 | return required
34 |
35 |
36 | setup(
37 | setup_requires=['wheel'],
38 | install_requires=requirements('requirements.txt'),
39 | )
40 |
--------------------------------------------------------------------------------
/tests/conftest.py:
--------------------------------------------------------------------------------
1 | import os
2 | from os.path import dirname, abspath, splitext, join, basename
3 | import pytest
4 | from sidetrack import set_debug
5 |
6 |
7 | @pytest.fixture(scope='module', autouse=True)
8 | def save_debug_log(request):
9 | '''Turn on debug logging & save the output to 'testfile.log'.'''
10 | here = dirname(abspath(__file__))
11 | mod_name = request.module.__name__
12 | log_file = join(here, splitext(basename(mod_name))[0] + '.log')
13 | open(log_file, 'w').close()
14 | set_debug(True, log_file)
15 | os.environ['IGA_RUN_MODE'] = 'debug'
16 | yield
17 |
18 |
19 | # @pytest.fixture(scope='function')
20 | # def unset_environment(request, monkeypatch):
21 | # '''Set MY_VARIABLE environment variable, this fixture must be used with `parametrize`'''
22 | # monkeypatch.delenv('INVENIO_SERVER')
23 | # monkeypatch.delenv('INVENIO_TOKEN')
24 | # monkeypatch.delenv('GITHUB_TOKEN')
25 | # yield request.param
26 |
--------------------------------------------------------------------------------
/tests/data/fake-example/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018-2021, Caltech
2 | All rights not granted herein are expressly reserved by Caltech.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | 1. Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of the copyright holder nor the names of its contributors
15 | may be used to endorse or promote products derived from this software without
16 | specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 | POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/tests/data/fake-example/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "fakeaccount",
3 | "id": 15038637,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE1MDM4NjM3",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/15038637?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/fakeaccount",
8 | "html_url": "https://github.com/fakeaccount",
9 | "followers_url": "https://api.github.com/users/fakeaccount/followers",
10 | "following_url": "https://api.github.com/users/fakeaccount/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/fakeaccount/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/fakeaccount/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/fakeaccount/subscriptions",
14 | "organizations_url": "https://api.github.com/users/fakeaccount/orgs",
15 | "repos_url": "https://api.github.com/users/fakeaccount/repos",
16 | "events_url": "https://api.github.com/users/fakeaccount/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/fakeaccount/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Fake name",
21 | "company": null,
22 | "blog": "https://www.library.caltech.edu/",
23 | "location": "Pasadena, CA 91125",
24 | "email": "helpdesk@library.caltech.edu",
25 | "hireable": null,
26 | "bio": "Fake bio",
27 | "twitter_username": null,
28 | "public_repos": 278,
29 | "public_gists": 0,
30 | "followers": 20,
31 | "following": 0,
32 | "created_at": "2015-10-08T19:15:54Z",
33 | "updated_at": "2022-12-12T02:42:23Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/fake-example/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "description": "A fake description",
5 | "name": "fakename",
6 | "codeRepository": "https://github.com/fakeaccount/fakerepo",
7 | "issueTracker": "https://github.com/fakeaccount/fakerepo/issues",
8 | "license": "https://github.com/fakeaccount/fakerepo/blob/master/LICENSE",
9 | "version": "faketag",
10 | "author": [
11 | {
12 | "@type": "Person",
13 | "givenName": "Michael",
14 | "familyName": "Hucka",
15 | "affiliation": "Caltech Library",
16 | "email": "mhucka@caltech.edu",
17 | "@id": "https://orcid.org/0000-0001-9105-5960"
18 | }],
19 | "copyrightHolder": [
20 | {
21 | "@id": "https://ror.org/05dxps055",
22 | "@type": "Organization",
23 | "name": "California Institute of Technology"
24 | }
25 | ],
26 | "copyrightYear": 2023,
27 | "developmentStatus": "active",
28 | "downloadUrl": "https://github.com/fakeaccount/fakerepo/archive/faketag.zip",
29 | "keywords": [
30 | "fakekeyword",
31 | ],
32 | "maintainer": "https://orcid.org/0000-0001-9105-5960",
33 | "programmingLanguage": "fakelanguage"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/fake-example/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | "LICENSE",
3 | "codemeta.json",
4 | ]
5 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/TCCON/py-ginput/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitignore",
3 | ".hgignore",
4 | ".makehelp",
5 | ".run_ginput_template.py",
6 | "HISTORY.md",
7 | "LICENSE.txt",
8 | "MANIFEST.in",
9 | "Makefile",
10 | "README.md",
11 | "environment-linux64-py310.yml",
12 | "environment-linux64-py36.yml",
13 | "environment-py310.yml",
14 | "environment-py36.yml",
15 | "ginput",
16 | "install-runscript.sh",
17 | "install.sh",
18 | "man",
19 | "one-off-scripts",
20 | "setup.py",
21 | ]
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/TCCON/py-ginput/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "TCCON",
3 | "id": 115177671,
4 | "node_id": "O_kgDOBt14xw",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/115177671?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/TCCON",
8 | "html_url": "https://github.com/TCCON",
9 | "followers_url": "https://api.github.com/users/TCCON/followers",
10 | "following_url": "https://api.github.com/users/TCCON/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/TCCON/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/TCCON/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/TCCON/subscriptions",
14 | "organizations_url": "https://api.github.com/users/TCCON/orgs",
15 | "repos_url": "https://api.github.com/users/TCCON/repos",
16 | "events_url": "https://api.github.com/users/TCCON/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/TCCON/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Total Carbon Column Observing Network",
21 | "company": null,
22 | "blog": "https://tccon-wiki.caltech.edu/",
23 | "location": null,
24 | "email": "tccon.ftir@gmail.com",
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": "tccon_ftir",
28 | "public_repos": 5,
29 | "public_gists": 0,
30 | "followers": 3,
31 | "following": 0,
32 | "created_at": "2022-10-06T16:45:10Z",
33 | "updated_at": "2022-10-06T17:15:44Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/sbmlteam/jsbml/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "description": "Open-source, pure Java library for reading, writing, and manipulating SBML files and data streams",
5 | "name": "jsbml",
6 | "codeRepository": "https://github.com/sbmlteam/jsbml",
7 | "issueTracker": "https://github.com/sbmlteam/jsbml/issues",
8 | "license": "https://github.com/sbmlteam/jsbml/blob/master/LICENSE",
9 | "version": "1.5.0",
10 | "author": [],
11 | "developmentStatus": "active",
12 | "downloadUrl": "https://github.com/sbmlteam/jsbml/archive/jsbml-1.5.zip",
13 | "keywords": [
14 | "software",
15 | "systems biology",
16 | "SBML"
17 | ],
18 | }
19 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/sbmlteam/jsbml/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitignore",
3 | ".graphics",
4 | "CODE_OF_CONDUCT.md",
5 | "CONTRIBUTING.md",
6 | "COPYING.txt",
7 | "FUNDING.txt",
8 | "LICENSE",
9 | "NEWS.md",
10 | "README.md",
11 | "SUPPORT.md",
12 | "build.xml",
13 | "codemeta.json",
14 | "core",
15 | "dev",
16 | "doc",
17 | "example_implementations",
18 | "examples",
19 | "extensions",
20 | "jsbml-build.properties",
21 | "lib",
22 | "modules",
23 | "overview.html",
24 | "pom.xml",
25 | "stylesheet.css",
26 | "test",
27 | ]
28 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/sbmlteam/jsbml/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "sbmlteam",
3 | "id": 1799692,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3OTk2OTI=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/1799692?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/sbmlteam",
8 | "html_url": "https://github.com/sbmlteam",
9 | "followers_url": "https://api.github.com/users/sbmlteam/followers",
10 | "following_url": "https://api.github.com/users/sbmlteam/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/sbmlteam/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/sbmlteam/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/sbmlteam/subscriptions",
14 | "organizations_url": "https://api.github.com/users/sbmlteam/orgs",
15 | "repos_url": "https://api.github.com/users/sbmlteam/repos",
16 | "events_url": "https://api.github.com/users/sbmlteam/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/sbmlteam/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "SBML Team",
21 | "company": null,
22 | "blog": "http://sbml.org/about",
23 | "location": null,
24 | "email": "sbml-team@googlegroups.com",
25 | "hireable": null,
26 | "bio": "The team supports SBML infrastructure & the SBML community. Note: additional team projects are located in SourceForge at https://sourceforge.net/projects/sbml/",
27 | "twitter_username": null,
28 | "public_repos": 39,
29 | "public_gists": 0,
30 | "followers": 3,
31 | "following": 0,
32 | "created_at": "2012-05-31T16:18:39Z",
33 | "updated_at": "2023-01-12T12:17:55Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/sbmlteam/libsbml/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".ci",
3 | ".github",
4 | ".gitignore",
5 | ".graphics",
6 | ".sonarcloud.properties",
7 | ".travis.yml",
8 | "CMakeLists.txt",
9 | "CMakeModules",
10 | "CODE_OF_CONDUCT.md",
11 | "CONTRIBUTING.md",
12 | "COPYING.html",
13 | "COPYING.txt",
14 | "FUNDING.txt",
15 | "LICENSE.html",
16 | "LICENSE.txt",
17 | "Makefile.in",
18 | "NEWS.txt",
19 | "README-code-from-svn.txt",
20 | "README.md",
21 | "VERSION.txt",
22 | "VERSION_PACKAGES.ac",
23 | "acinclude.m4",
24 | "aclocal.m4",
25 | "arrays-package.cmake",
26 | "artefacts.md",
27 | "autogen.sh",
28 | "ci.md",
29 | "cmake_uninstall.cmake.in",
30 | "common.cmake",
31 | "comp-package.cmake",
32 | "conanfile.txt",
33 | "config",
34 | "configure",
35 | "configure.ac",
36 | "dev",
37 | "distrib-package.cmake",
38 | "docs",
39 | "dyn-package.cmake",
40 | "examples",
41 | "fbc-package.cmake",
42 | "groups-package.cmake",
43 | "l3v2extendedmath-package.cmake",
44 | "layout-package.cmake",
45 | "libsbml.spec.in",
46 | "libtoolize.sh",
47 | "macosx",
48 | "multi-package.cmake",
49 | "pull_request_template.md",
50 | "qual-package.cmake",
51 | "render-package.cmake",
52 | "req-package.cmake",
53 | "spatial-package.cmake",
54 | "src",
55 | ]
56 |
--------------------------------------------------------------------------------
/tests/data/github-examples/neither-codemeta-nor-cff/sbmlteam/libsbml/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "sbmlteam",
3 | "id": 1799692,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3OTk2OTI=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/1799692?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/sbmlteam",
8 | "html_url": "https://github.com/sbmlteam",
9 | "followers_url": "https://api.github.com/users/sbmlteam/followers",
10 | "following_url": "https://api.github.com/users/sbmlteam/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/sbmlteam/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/sbmlteam/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/sbmlteam/subscriptions",
14 | "organizations_url": "https://api.github.com/users/sbmlteam/orgs",
15 | "repos_url": "https://api.github.com/users/sbmlteam/repos",
16 | "events_url": "https://api.github.com/users/sbmlteam/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/sbmlteam/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "SBML Team",
21 | "company": null,
22 | "blog": "http://sbml.org/about",
23 | "location": null,
24 | "email": "sbml-team@googlegroups.com",
25 | "hireable": null,
26 | "bio": "The team supports SBML infrastructure & the SBML community. Note: additional team projects are located in SourceForge at https://sourceforge.net/projects/sbml/",
27 | "twitter_username": null,
28 | "public_repos": 39,
29 | "public_gists": 0,
30 | "followers": 3,
31 | "following": 0,
32 | "created_at": "2012-05-31T16:18:39Z",
33 | "updated_at": "2023-01-12T12:17:55Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/SDXorg/pysd/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2022 PySD contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/SDXorg/pysd/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".github",
3 | ".gitignore",
4 | ".gitmodules",
5 | ".readthedocs.yaml",
6 | "LICENSE",
7 | "MANIFEST.in",
8 | "README.md",
9 | "citation.cff",
10 | "docs",
11 | "paper",
12 | "pysd",
13 | "requirements.txt",
14 | "setup.cfg",
15 | "setup.py",
16 | "tests",
17 | ]
18 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/SDXorg/pysd/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "SDXorg",
3 | "id": 11491926,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNDkxOTI2",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/11491926?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/SDXorg",
8 | "html_url": "https://github.com/SDXorg",
9 | "followers_url": "https://api.github.com/users/SDXorg/followers",
10 | "following_url": "https://api.github.com/users/SDXorg/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/SDXorg/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/SDXorg/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/SDXorg/subscriptions",
14 | "organizations_url": "https://api.github.com/users/SDXorg/orgs",
15 | "repos_url": "https://api.github.com/users/SDXorg/repos",
16 | "events_url": "https://api.github.com/users/SDXorg/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/SDXorg/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": null,
21 | "company": null,
22 | "blog": "",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": "Open source tools for system dynamics",
27 | "twitter_username": null,
28 | "public_repos": 6,
29 | "public_gists": 0,
30 | "followers": 11,
31 | "following": 0,
32 | "created_at": "2015-03-15T20:34:46Z",
33 | "updated_at": "2022-09-06T19:22:06Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/open-mmlab/mmocr/CITATION.cff:
--------------------------------------------------------------------------------
1 | cff-version: 1.2.0
2 | message: "If you use this software, please cite it as below."
3 | title: "OpenMMLab Text Detection, Recognition and Understanding Toolbox"
4 | authors:
5 | - name: "MMOCR Contributors"
6 | version: 0.3.0
7 | date-released: 2020-08-15
8 | repository-code: "https://github.com/open-mmlab/mmocr"
9 | license: Apache-2.0
10 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/open-mmlab/mmocr/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".circleci",
3 | ".codespellrc",
4 | ".coveragerc",
5 | ".dev_scripts",
6 | ".github",
7 | ".gitignore",
8 | ".owners.yml",
9 | ".pre-commit-config.yaml",
10 | ".pylintrc",
11 | ".readthedocs.yml",
12 | "CITATION.cff",
13 | "LICENSE",
14 | "MANIFEST.in",
15 | "README.md",
16 | "README_zh-CN.md",
17 | "configs",
18 | "dataset_zoo",
19 | "demo",
20 | "dicts",
21 | "docker",
22 | "docs",
23 | "mmocr",
24 | "model-index.yml",
25 | "projects",
26 | "requirements.txt",
27 | "requirements",
28 | "resources",
29 | "setup.cfg",
30 | "setup.py",
31 | "tests",
32 | "tools",
33 | ]
34 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/open-mmlab/mmocr/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "open-mmlab",
3 | "id": 10245193,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjEwMjQ1MTkz",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/10245193?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/open-mmlab",
8 | "html_url": "https://github.com/open-mmlab",
9 | "followers_url": "https://api.github.com/users/open-mmlab/followers",
10 | "following_url": "https://api.github.com/users/open-mmlab/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/open-mmlab/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/open-mmlab/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/open-mmlab/subscriptions",
14 | "organizations_url": "https://api.github.com/users/open-mmlab/orgs",
15 | "repos_url": "https://api.github.com/users/open-mmlab/repos",
16 | "events_url": "https://api.github.com/users/open-mmlab/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/open-mmlab/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "OpenMMLab",
21 | "company": null,
22 | "blog": "https://openmmlab.com",
23 | "location": "China",
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": "OpenMMLab",
28 | "public_repos": 42,
29 | "public_gists": 0,
30 | "followers": 3634,
31 | "following": 0,
32 | "created_at": "2014-12-19T16:17:27Z",
33 | "updated_at": "2023-01-06T04:08:33Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/tensorflow/tensorflow/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".bazelrc",
3 | ".bazelversion",
4 | ".clang-format",
5 | ".github",
6 | ".gitignore",
7 | ".pylintrc",
8 | ".zenodo.json",
9 | "AUTHORS",
10 | "BUILD",
11 | "CITATION.cff",
12 | "CODEOWNERS",
13 | "CODE_OF_CONDUCT.md",
14 | "CONTRIBUTING.md",
15 | "ISSUES.md",
16 | "ISSUE_TEMPLATE.md",
17 | "LICENSE",
18 | "README.md",
19 | "RELEASE.md",
20 | "SECURITY.md",
21 | "WORKSPACE",
22 | "arm_compiler.BUILD",
23 | "configure",
24 | "configure.cmd",
25 | "configure.py",
26 | "fuzztest.bazelrc",
27 | "models.BUILD",
28 | "tensorflow",
29 | "third_party",
30 | "tools",
31 | ]
32 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/tensorflow/tensorflow/release.json:
--------------------------------------------------------------------------------
1 | {
2 | "message": "Not Found",
3 | "documentation_url": "https://docs.github.com/rest/reference/repos#get-a-release-by-tag-name"
4 | }
5 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-citation-cff/tensorflow/tensorflow/user.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "tensorflow",
3 | "id": 15658638,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/15658638?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/tensorflow",
8 | "html_url": "https://github.com/tensorflow",
9 | "followers_url": "https://api.github.com/users/tensorflow/followers",
10 | "following_url": "https://api.github.com/users/tensorflow/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/tensorflow/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/tensorflow/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/tensorflow/subscriptions",
14 | "organizations_url": "https://api.github.com/users/tensorflow/orgs",
15 | "repos_url": "https://api.github.com/users/tensorflow/repos",
16 | "events_url": "https://api.github.com/users/tensorflow/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/tensorflow/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": null,
21 | "company": null,
22 | "blog": "http://www.tensorflow.org",
23 | "location": null,
24 | "email": "github-admin@tensorflow.org",
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 107,
29 | "public_gists": 0,
30 | "followers": 5928,
31 | "following": 0,
32 | "created_at": "2015-11-04T19:32:50Z",
33 | "updated_at": "2023-01-25T21:37:45Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/KarrLab/de_sim/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2019-2020 Karr Lab
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/KarrLab/de_sim/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "KarrLab",
3 | "id": 13785824,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjEzNzg1ODI0",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/13785824?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/KarrLab",
8 | "html_url": "https://github.com/KarrLab",
9 | "followers_url": "https://api.github.com/users/KarrLab/followers",
10 | "following_url": "https://api.github.com/users/KarrLab/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/KarrLab/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/KarrLab/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/KarrLab/subscriptions",
14 | "organizations_url": "https://api.github.com/users/KarrLab/orgs",
15 | "repos_url": "https://api.github.com/users/KarrLab/repos",
16 | "events_url": "https://api.github.com/users/KarrLab/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/KarrLab/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Karr whole-cell modeling lab",
21 | "company": null,
22 | "blog": "https://www.karrlab.org",
23 | "location": "1255 5th Avenue, New York NY 10029",
24 | "email": "info@karrlab.org",
25 | "hireable": null,
26 | "bio": "Developing whole-cell computational models to predict and engineer biology.",
27 | "twitter_username": null,
28 | "public_repos": 64,
29 | "public_gists": 0,
30 | "followers": 5,
31 | "following": 0,
32 | "created_at": "2015-08-13T17:33:41Z",
33 | "updated_at": "2020-04-20T21:24:08Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/KarrLab/de_sim/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".circleci",
3 | ".gitignore",
4 | ".karr_lab_build_utils.yml",
5 | "CODE_OF_CONDUCT.md",
6 | "CONTRIBUTING.md",
7 | "Dockerfile",
8 | "LICENSE",
9 | "MANIFEST.in",
10 | "README.md",
11 | "codemeta.json",
12 | "de_sim",
13 | "docs",
14 | "joss_paper",
15 | "make",
16 | "pytest.ini",
17 | "requirements.optional.txt",
18 | "requirements.txt",
19 | "setup.cfg",
20 | "setup.py",
21 | "tests",
22 | ]
23 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/README.md:
--------------------------------------------------------------------------------
1 | # Samples of GitHub repositories with codemeta.json files
2 |
3 | I obtained these files on 2023-01-19 by doing a search on GitHub.com using the expression
4 | ```
5 | path:**/codemeta.json
6 | ```
7 |
8 | and then inspecting the first few pages of results, looking for examples that used licenses no more restrictive than ours (so, BSD 3-clause or MIT or better). I then saved the `codemeta.json` file, plus the JSON output of using GitHub's API to get the repository data and the latest release data. (The latter are stored in the files `repo.json` and `release.json`, respectively.)
9 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/UUDigitalHumanitieslab/tscan/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "UUDigitalHumanitieslab",
3 | "id": 7656260,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjc2NTYyNjA=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/7656260?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/UUDigitalHumanitieslab",
8 | "html_url": "https://github.com/UUDigitalHumanitieslab",
9 | "followers_url": "https://api.github.com/users/UUDigitalHumanitieslab/followers",
10 | "following_url": "https://api.github.com/users/UUDigitalHumanitieslab/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/UUDigitalHumanitieslab/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/UUDigitalHumanitieslab/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/UUDigitalHumanitieslab/subscriptions",
14 | "organizations_url": "https://api.github.com/users/UUDigitalHumanitieslab/orgs",
15 | "repos_url": "https://api.github.com/users/UUDigitalHumanitieslab/repos",
16 | "events_url": "https://api.github.com/users/UUDigitalHumanitieslab/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/UUDigitalHumanitieslab/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "UU Digital Humanities Lab",
21 | "company": null,
22 | "blog": "http://dig.hum.uu.nl",
23 | "location": "Utrecht",
24 | "email": "digitalhumanities@uu.nl",
25 | "hireable": null,
26 | "bio": "Digital Humanities Lab of Utrecht University",
27 | "twitter_username": null,
28 | "public_repos": 83,
29 | "public_gists": 0,
30 | "followers": 6,
31 | "following": 0,
32 | "created_at": "2014-05-21T09:40:56Z",
33 | "updated_at": "2021-11-05T14:43:22Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/UUDigitalHumanitieslab/tscan/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".clang-format",
3 | ".dockerignore",
4 | ".github",
5 | ".gitignore",
6 | ".travis.yml",
7 | "AUTHORS",
8 | "COPYING",
9 | "Dockerfile",
10 | "Makefile.am",
11 | "NEWS",
12 | "README",
13 | "README.md",
14 | "bootstrap.sh",
15 | "codemeta.json",
16 | "configure.ac",
17 | "cppcheck-suppressions-list.txt",
18 | "data",
19 | "docker-compose.yaml",
20 | "docker",
21 | "docs",
22 | "downloaddata.sh",
23 | "include",
24 | "m4",
25 | "src",
26 | "surprise.sh",
27 | "tests",
28 | "tscan.cfg.example",
29 | "view",
30 | "webservice",
31 | ]
32 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/betteridiot/bamnostic/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2018, Marcus D. Sherman
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/betteridiot/bamnostic/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "betteridiot",
3 | "id": 25447319,
4 | "node_id": "MDQ6VXNlcjI1NDQ3MzE5",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/25447319?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/betteridiot",
8 | "html_url": "https://github.com/betteridiot",
9 | "followers_url": "https://api.github.com/users/betteridiot/followers",
10 | "following_url": "https://api.github.com/users/betteridiot/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/betteridiot/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/betteridiot/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/betteridiot/subscriptions",
14 | "organizations_url": "https://api.github.com/users/betteridiot/orgs",
15 | "repos_url": "https://api.github.com/users/betteridiot/repos",
16 | "events_url": "https://api.github.com/users/betteridiot/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/betteridiot/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Marcus D Sherman",
21 | "company": null,
22 | "blog": "",
23 | "location": "Portland, Maine",
24 | "email": null,
25 | "hireable": null,
26 | "bio": "PhD candidate in DCMB at the UMich. Member of @mills-lab. @PyDataAnnArbor volunteer, @PyCon staff",
27 | "twitter_username": null,
28 | "public_repos": 19,
29 | "public_gists": 0,
30 | "followers": 42,
31 | "following": 1,
32 | "created_at": "2017-01-31T02:55:36Z",
33 | "updated_at": "2023-01-24T13:49:34Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/betteridiot/bamnostic/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".appveyor.yml",
3 | ".flake8",
4 | ".github",
5 | ".gitignore",
6 | ".readthedocs.yaml",
7 | ".stickler.yml",
8 | ".travis.yml",
9 | "CODE_OF_CONDUCT.md",
10 | "CONTRIBUTING.md",
11 | "LICENSE",
12 | "MANIFEST.in",
13 | "README.md",
14 | "README.rst",
15 | "bamnostic",
16 | "codemeta.json",
17 | "docs",
18 | "pyproject.toml",
19 | "pytest.ini",
20 | "requirements.txt",
21 | "setup.cfg",
22 | "setup.py",
23 | "tests",
24 | "version",
25 | ]
26 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/eprinttools/CITATION.cff:
--------------------------------------------------------------------------------
1 | cff-version: 1.2.0
2 | message: "If you use this software, please cite it as below."
3 | type: software
4 | title: "eprinttools"
5 | abstract: "Command line tools, Golang package and Python module for
6 | working with the EPrints 3.x REST API"
7 | authors:
8 | - family-names: Doiel
9 | given-names: R. S.
10 | orcid: "https://orcid.org/0000-0003-0900-6903"
11 |
12 | contributors:
13 | - family-names: Porter
14 | given-names: George
15 | orcid: "https://orcid.org/0000-0002-6539-638X"
16 |
17 | maintainers:
18 | - family-names: Doiel
19 | given-names: R. S.
20 | orcid: "https://orcid.org/0000-0003-0900-6903"
21 |
22 | repository-code: "https://github.com/caltechlibrary/eprinttools"
23 | version: 1.2.2
24 | license-url: "https://caltechlibrary.github.io/eprinttools/license.html"
25 | keywords: [ "metadata", "repository", "EPrints", "CrossRef", "DataCite", "software" ]
26 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/eprinttools/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Copyright (c) 2022, Caltech
3 | All rights not granted herein are expressly reserved by Caltech.
4 |
5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6 |
7 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 |
9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
10 |
11 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
12 |
13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/eprinttools/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "caltechlibrary",
3 | "id": 15038637,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE1MDM4NjM3",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/15038637?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/caltechlibrary",
8 | "html_url": "https://github.com/caltechlibrary",
9 | "followers_url": "https://api.github.com/users/caltechlibrary/followers",
10 | "following_url": "https://api.github.com/users/caltechlibrary/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/caltechlibrary/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/caltechlibrary/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/caltechlibrary/subscriptions",
14 | "organizations_url": "https://api.github.com/users/caltechlibrary/orgs",
15 | "repos_url": "https://api.github.com/users/caltechlibrary/repos",
16 | "events_url": "https://api.github.com/users/caltechlibrary/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/caltechlibrary/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Caltech Library",
21 | "company": null,
22 | "blog": "https://www.library.caltech.edu/",
23 | "location": "Pasadena, CA 91125",
24 | "email": "helpdesk@library.caltech.edu",
25 | "hireable": null,
26 | "bio": "We manage the physical and digital holdings of the California Institute of Technology, provide services and training, and develop open-source software.",
27 | "twitter_username": null,
28 | "public_repos": 278,
29 | "public_gists": 0,
30 | "followers": 20,
31 | "following": 0,
32 | "created_at": "2015-10-08T19:15:54Z",
33 | "updated_at": "2022-12-12T02:42:23Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/handprint/CITATION.cff:
--------------------------------------------------------------------------------
1 | # YAML 1.2
2 | ---
3 | authors:
4 | -
5 | affiliation: "Caltech Library"
6 | given-names: Michael
7 | family-names: Hucka
8 | orcid: "0000-0001-9105-5960"
9 | cff-version: "1.1.0"
10 | message: "If you use this software, please cite it using these metadata."
11 | repository-code: "https://github.com/caltechlibrary/handprint"
12 | title: "Handprint: Run handwritten text recognition services on images of documents"
13 | date-released: 2022-06-24
14 | version: "1.6.0"
15 | doi: 10.22002/20207
16 | keywords:
17 | - handwritten text recognition
18 | - optical character recognition
19 | - machine learning
20 | - artificial intelligence
21 | - cloud services
22 | - document processing
23 | ...
24 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/handprint/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018-2022, Caltech
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice,
7 | this list of conditions and the following disclaimer.
8 |
9 | 2. Redistributions in binary form must reproduce the above copyright notice,
10 | this list of conditions and the following disclaimer in the documentation
11 | and/or other materials provided with the distribution.
12 |
13 | 3. Neither the name of the copyright holder nor the names of its contributors
14 | may be used to endorse or promote products derived from this software without
15 | specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 | POSSIBILITY OF SUCH DAMAGE.
28 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/handprint/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "caltechlibrary",
3 | "id": 15038637,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE1MDM4NjM3",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/15038637?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/caltechlibrary",
8 | "html_url": "https://github.com/caltechlibrary",
9 | "followers_url": "https://api.github.com/users/caltechlibrary/followers",
10 | "following_url": "https://api.github.com/users/caltechlibrary/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/caltechlibrary/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/caltechlibrary/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/caltechlibrary/subscriptions",
14 | "organizations_url": "https://api.github.com/users/caltechlibrary/orgs",
15 | "repos_url": "https://api.github.com/users/caltechlibrary/repos",
16 | "events_url": "https://api.github.com/users/caltechlibrary/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/caltechlibrary/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Caltech Library",
21 | "company": null,
22 | "blog": "https://www.library.caltech.edu/",
23 | "location": "Pasadena, CA 91125",
24 | "email": "helpdesk@library.caltech.edu",
25 | "hireable": null,
26 | "bio": "We manage the physical and digital holdings of the California Institute of Technology, provide services and training, and develop open-source software.",
27 | "twitter_username": null,
28 | "public_repos": 278,
29 | "public_gists": 0,
30 | "followers": 20,
31 | "following": 0,
32 | "created_at": "2015-10-08T19:15:54Z",
33 | "updated_at": "2022-12-12T02:42:23Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/handprint/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "description": "Apply different handwritten text recognition services and algorithms to handwritten documents.",
5 | "name": "Handprint",
6 | "codeRepository": "https://github.com/caltechlibrary/handprint",
7 | "issueTracker": "https://github.com/caltechlibrary/handprint/issues",
8 | "license": "https://github.com/caltechlibrary/handprint/blob/master/LICENSE",
9 | "version": "1.6.0",
10 | "author": [
11 | {
12 | "@type": "Person",
13 | "givenName": "Michael",
14 | "familyName": "Hucka",
15 | "affiliation": "Caltech Library",
16 | "email": "mhucka@caltech.edu",
17 | "@id": "https://orcid.org/0000-0001-9105-5960"
18 | }],
19 | "developmentStatus": "active",
20 | "keywords": [
21 | "handwritten text recognition",
22 | "HTR",
23 | "OCR",
24 | "machine learning"
25 | ],
26 | "maintainer": "https://orcid.org/0000-0001-9105-5960",
27 | "programmingLanguage": "Python"
28 | }
29 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/handprint/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitattributes",
3 | ".github",
4 | ".gitignore",
5 | ".graphics",
6 | "CHANGES.md",
7 | "CITATION.cff",
8 | "CODE_OF_CONDUCT.md",
9 | "CONTRIBUTING.md",
10 | "LICENSE",
11 | "Makefile",
12 | "Pipfile",
13 | "Pipfile.lock",
14 | "README-PAPER.md",
15 | "README.md",
16 | "SUPPORT.md",
17 | "bin",
18 | "codemeta.json",
19 | "dev",
20 | "docs",
21 | "handprint",
22 | "pubs",
23 | "requirements-dev.txt",
24 | "requirements.txt",
25 | "setup.cfg",
26 | "setup.py",
27 | "tests",
28 | ]
29 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/urlup/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018-2021, Caltech
2 | All rights not granted herein are expressly reserved by Caltech.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | 1. Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of the copyright holder nor the names of its contributors
15 | may be used to endorse or promote products derived from this software without
16 | specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 | POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/urlup/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "description": "A small utility program and Python 3 module to dereference URLs and determine their final destinations after following redirections.",
5 | "name": "Urlup",
6 | "codeRepository": "https://github.com/caltechlibrary/urlup",
7 | "issueTracker": "https://github.com/caltechlibrary/urlup/issues",
8 | "license": "https://github.com/caltechlibrary/urlup/blob/master/LICENSE",
9 | "version": "1.5.1",
10 | "author": [
11 | {
12 | "@type": "Person",
13 | "givenName": "Michael",
14 | "familyName": "Hucka",
15 | "affiliation": "Caltech Library",
16 | "email": "mhucka@caltech.edu",
17 | "@id": "https://orcid.org/0000-0001-9105-5960"
18 | }],
19 | "developmentStatus": "active",
20 | "downloadUrl": "https://github.com/caltechlibrary/urlup/archive/1.5.1.zip",
21 | "keywords": [
22 | "TIND.io",
23 | "MARC",
24 | "URL"
25 | ],
26 | "maintainer": "https://orcid.org/0000-0001-9105-5960",
27 | "programmingLanguage": "Python"
28 | }
29 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/caltechlibrary/urlup/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitignore",
3 | ".graphics",
4 | "CHANGES.md",
5 | "CODE_OF_CONDUCT.md",
6 | "CONTRIBUTING.md",
7 | "INSTALL-Python3.md",
8 | "LICENSE",
9 | "MANIFEST.in",
10 | "Makefile",
11 | "README.md",
12 | "SUPPORT.md",
13 | "bin",
14 | "codemeta.json",
15 | "dev",
16 | "make.bat",
17 | "pyinstaller-darwin.spec",
18 | "pyinstaller-win32.spec",
19 | "requirements.txt",
20 | "setup.cfg",
21 | "setup.py",
22 | "tests",
23 | "urlup",
24 | ]
25 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/cds-astro/tutorials/LICENCE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2022, CDS (Centre de Données astronomiques de Strasbourg)
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | 1. Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | 2. Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | 3. Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/cds-astro/tutorials/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "cds-astro",
3 | "id": 26145382,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjI2MTQ1Mzgy",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/26145382?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/cds-astro",
8 | "html_url": "https://github.com/cds-astro",
9 | "followers_url": "https://api.github.com/users/cds-astro/followers",
10 | "following_url": "https://api.github.com/users/cds-astro/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/cds-astro/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/cds-astro/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/cds-astro/subscriptions",
14 | "organizations_url": "https://api.github.com/users/cds-astro/orgs",
15 | "repos_url": "https://api.github.com/users/cds-astro/repos",
16 | "events_url": "https://api.github.com/users/cds-astro/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/cds-astro/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "CDS (Centre de Données astronomiques de Strasbourg)",
21 | "company": null,
22 | "blog": "http://cds.unistra.fr/",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 28,
29 | "public_gists": 0,
30 | "followers": 27,
31 | "following": 0,
32 | "created_at": "2017-03-02T16:12:35Z",
33 | "updated_at": "2017-03-02T16:17:35Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/cds-astro/tutorials/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".github",
3 | ".gitignore",
4 | ".pre-commit-config.yaml",
5 | "LICENCE",
6 | "Notebooks",
7 | "Past_Conferences_and_Schools",
8 | "README.md",
9 | "codemeta.json",
10 | "justfile",
11 | "postBuild",
12 | "pyproject.toml",
13 | "requirements-dev.txt",
14 | "requirements-docs.txt",
15 | "requirements.txt",
16 | "runtime.txt",
17 | ]
18 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/charlie86/spotifyr/LICENSE:
--------------------------------------------------------------------------------
1 | YEAR: 2017
2 | COPYRIGHT HOLDER: Charlie Thompson
3 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/charlie86/spotifyr/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "charlie86",
3 | "id": 9537903,
4 | "node_id": "MDQ6VXNlcjk1Mzc5MDM=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/9537903?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/charlie86",
8 | "html_url": "https://github.com/charlie86",
9 | "followers_url": "https://api.github.com/users/charlie86/followers",
10 | "following_url": "https://api.github.com/users/charlie86/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/charlie86/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/charlie86/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/charlie86/subscriptions",
14 | "organizations_url": "https://api.github.com/users/charlie86/orgs",
15 | "repos_url": "https://api.github.com/users/charlie86/repos",
16 | "events_url": "https://api.github.com/users/charlie86/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/charlie86/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": null,
21 | "company": "Spotify",
22 | "blog": "rcharlie.com",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": "Data Scientist",
27 | "twitter_username": null,
28 | "public_repos": 29,
29 | "public_gists": 2,
30 | "followers": 115,
31 | "following": 0,
32 | "created_at": "2014-11-03T19:42:33Z",
33 | "updated_at": "2022-12-09T22:11:23Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/charlie86/spotifyr/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".DS_Store",
3 | ".Rbuildignore",
4 | ".gitignore",
5 | "CODE_OF_CONDUCT.md",
6 | "CRAN-SUBMISSION",
7 | "DESCRIPTION",
8 | "LICENSE",
9 | "NAMESPACE",
10 | "NEWS.md",
11 | "R",
12 | "README.md",
13 | "_pkgdown.yml",
14 | "codemeta.json",
15 | "cran-comments.md",
16 | "data-raw",
17 | "docs",
18 | "inst",
19 | "man",
20 | "readme.Rmd",
21 | "spotifyr.Rproj",
22 | "tests",
23 | ]
24 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/codemeta/codemeta/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "codemeta",
3 | "id": 15223235,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE1MjIzMjM1",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/15223235?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/codemeta",
8 | "html_url": "https://github.com/codemeta",
9 | "followers_url": "https://api.github.com/users/codemeta/followers",
10 | "following_url": "https://api.github.com/users/codemeta/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/codemeta/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/codemeta/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/codemeta/subscriptions",
14 | "organizations_url": "https://api.github.com/users/codemeta/orgs",
15 | "repos_url": "https://api.github.com/users/codemeta/repos",
16 | "events_url": "https://api.github.com/users/codemeta/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/codemeta/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "CodeMeta",
21 | "company": null,
22 | "blog": "https://codemeta.github.io",
23 | "location": "Santa Barbara, CA",
24 | "email": null,
25 | "hireable": null,
26 | "bio": "CodeMeta focuses on metadata and discovery systems for software citation and attribution.",
27 | "twitter_username": null,
28 | "public_repos": 5,
29 | "public_gists": 0,
30 | "followers": 1,
31 | "following": 0,
32 | "created_at": "2015-10-21T00:57:05Z",
33 | "updated_at": "2017-09-27T16:45:45Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/codemeta/codemeta/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitignore",
3 | ".travis.yml",
4 | "CONTRIBUTING.md",
5 | "CONTRIBUTORS.MD",
6 | "LICENSE",
7 | "README.md",
8 | "codemeta.json",
9 | "codemeta.jsonld",
10 | "crosswalk.csv",
11 | "crosswalks",
12 | "examples",
13 | "properties_description.csv",
14 | "scripts",
15 | "tests",
16 | ]
17 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/crosscite/content-negotiation/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 DataCite
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/crosscite/content-negotiation/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "crosscite",
3 | "id": 756493,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NjQ5Mw==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/756493?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/crosscite",
8 | "html_url": "https://github.com/crosscite",
9 | "followers_url": "https://api.github.com/users/crosscite/followers",
10 | "following_url": "https://api.github.com/users/crosscite/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/crosscite/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/crosscite/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/crosscite/subscriptions",
14 | "organizations_url": "https://api.github.com/users/crosscite/orgs",
15 | "repos_url": "https://api.github.com/users/crosscite/repos",
16 | "events_url": "https://api.github.com/users/crosscite/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/crosscite/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": null,
21 | "company": null,
22 | "blog": "",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 4,
29 | "public_gists": 0,
30 | "followers": 0,
31 | "following": 0,
32 | "created_at": "2011-04-28T08:26:19Z",
33 | "updated_at": "2017-04-12T17:14:14Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/crosscite/content-negotiation/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
3 | "@type": "SoftwareSourceCode",
4 | "@id": "https://doi.org/10.5438/T1JG-HVHN",
5 | "agents": {
6 | "@id": "http://orcid.org/0000-0003-1419-2405",
7 | "@type": "person",
8 | "name": "Martin Fenner",
9 | "affiliation": "DataCite",
10 | "mustBeCited": true,
11 | "isMaintainer": true,
12 | "isRightsHolder": true
13 | },
14 | "identifier": "https://doi.org/10.5438/T1JG-HVHN",
15 | "codeRepository": "https://github.com/crosscite/content-negotiation",
16 | "dateCreated": "2017-04-08",
17 | "datePublished": "2017-04-28",
18 | "dateModified": "2017-04-28",
19 | "description": "An API for DOI content negotiation. Also available as Docker container.",
20 | "isAutomatedBuild": true,
21 | "licenseId": "MIT",
22 | "publisher": "DataCite",
23 | "tags": [
24 | "doi",
25 | "metadata",
26 | "crossref",
27 | "datacite",
28 | "schema.org",
29 | "bibtex",
30 | "codemeta",
31 | "content negotiation"
32 | ],
33 | "title": "Content-Negotation: an API for DOI content negotiation",
34 | "programmingLanguage": {
35 | "name": "Ruby",
36 | "version": "≥ 2.3.3",
37 | "URL": "https://www.ruby-lang.org"
38 | },
39 | "readme": "https://github.com/crosscite/content-negotiation/blob/master/README.md"
40 | }
41 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/crosscite/content-negotiation/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".dockerignore",
3 | ".env.build",
4 | ".github",
5 | ".gitignore",
6 | ".rubocop.yml",
7 | ".travis.yml",
8 | ".vscode",
9 | "CHANGELOG.md",
10 | "Dockerfile",
11 | "Gemfile",
12 | "Gemfile.lock",
13 | "LICENSE",
14 | "README.md",
15 | "Rakefile",
16 | "app",
17 | "bin",
18 | "codemeta.json",
19 | "config.ru",
20 | "config",
21 | "coverage",
22 | "devspace.yaml",
23 | "docker-compose.yml",
24 | "lib",
25 | "spec",
26 | "tmp",
27 | "vendor",
28 | ]
29 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/akita/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 DataCite
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/akita/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "datacite",
3 | "id": 411326,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjQxMTMyNg==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/411326?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/datacite",
8 | "html_url": "https://github.com/datacite",
9 | "followers_url": "https://api.github.com/users/datacite/followers",
10 | "following_url": "https://api.github.com/users/datacite/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/datacite/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/datacite/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/datacite/subscriptions",
14 | "organizations_url": "https://api.github.com/users/datacite/orgs",
15 | "repos_url": "https://api.github.com/users/datacite/repos",
16 | "events_url": "https://api.github.com/users/datacite/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/datacite/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "DataCite",
21 | "company": null,
22 | "blog": "https://www.datacite.org",
23 | "location": null,
24 | "email": "info@datacite.org",
25 | "hireable": null,
26 | "bio": "Connecting research, identifying knowledge",
27 | "twitter_username": "DataCite",
28 | "public_repos": 111,
29 | "public_gists": 0,
30 | "followers": 16,
31 | "following": 0,
32 | "created_at": "2010-09-22T11:11:04Z",
33 | "updated_at": "2021-12-22T11:46:44Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/akita/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".babelrc",
3 | ".dockerignore",
4 | ".eslintrc.js",
5 | ".github",
6 | ".gitignore",
7 | ".prettierignore",
8 | ".prettierrc.json",
9 | ".yarnclean",
10 | "LICENSE",
11 | "README.md",
12 | "codemeta.json",
13 | "config",
14 | "cypress.json",
15 | "cypress",
16 | "decs.d.ts",
17 | "jest.config.js",
18 | "next-env.d.ts",
19 | "next.config.js",
20 | "package.json",
21 | "public",
22 | "server.js",
23 | "src",
24 | "tsconfig.json",
25 | "vercel.json",
26 | "yarn.lock",
27 | ]
28 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/pidgraph-notebooks-python/CITATION.cff:
--------------------------------------------------------------------------------
1 |
2 | cff-version: 1.1.0
3 | message: "If you use this software, please cite it as below."
4 | authors:
5 | doi: 10.14454/fqq6-w751
6 | version: 1.1.1
7 | title: FREYA PID Graph Jupyter Notebooks
8 | date-released: 2020-05-08
9 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/pidgraph-notebooks-python/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 DataCite
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/pidgraph-notebooks-python/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "datacite",
3 | "id": 411326,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjQxMTMyNg==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/411326?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/datacite",
8 | "html_url": "https://github.com/datacite",
9 | "followers_url": "https://api.github.com/users/datacite/followers",
10 | "following_url": "https://api.github.com/users/datacite/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/datacite/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/datacite/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/datacite/subscriptions",
14 | "organizations_url": "https://api.github.com/users/datacite/orgs",
15 | "repos_url": "https://api.github.com/users/datacite/repos",
16 | "events_url": "https://api.github.com/users/datacite/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/datacite/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "DataCite",
21 | "company": null,
22 | "blog": "https://www.datacite.org",
23 | "location": null,
24 | "email": "info@datacite.org",
25 | "hireable": null,
26 | "bio": "Connecting research, identifying knowledge",
27 | "twitter_username": "DataCite",
28 | "public_repos": 111,
29 | "public_gists": 0,
30 | "followers": 16,
31 | "following": 0,
32 | "created_at": "2010-09-22T11:11:04Z",
33 | "updated_at": "2021-12-22T11:46:44Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/datacite/pidgraph-notebooks-python/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".github",
3 | ".gitignore",
4 | "CITATION.cff",
5 | "LICENSE",
6 | "README.md",
7 | "codemeta.json",
8 | "dmp",
9 | "images",
10 | "mdc-dataset-carrer-status",
11 | "mdc-dataset-discipline",
12 | "postBuild",
13 | "render_notebooks.sh",
14 | "requirements.txt",
15 | "researcher-publications",
16 | "runtime.txt",
17 | "user-story-1-datacenter-publication-citations",
18 | "user-story-10-grant-outputs",
19 | "user-story-2-software-citations",
20 | "user-story-3-impacts-of-organization",
21 | "user-story-4-open-access",
22 | "user-story-5-dissertations",
23 | "user-story-6-disambiguate-researchers",
24 | "user-story-7-second-degree-citations",
25 | "user-story-8-impacts-of-data",
26 | "user-story-9-researcher-coauthors",
27 | "user-story-nfdi4ing-instrument",
28 | ]
29 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ddsjoberg/gtsummary/LICENSE:
--------------------------------------------------------------------------------
1 | YEAR: 2020
2 | COPYRIGHT HOLDER: Daniel D. Sjoberg
3 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ddsjoberg/gtsummary/LICENSE.md:
--------------------------------------------------------------------------------
1 | # MIT License
2 |
3 | Copyright (c) 2020 Daniel D. Sjoberg
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ddsjoberg/gtsummary/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "ddsjoberg",
3 | "id": 26774684,
4 | "node_id": "MDQ6VXNlcjI2Nzc0Njg0",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/26774684?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/ddsjoberg",
8 | "html_url": "https://github.com/ddsjoberg",
9 | "followers_url": "https://api.github.com/users/ddsjoberg/followers",
10 | "following_url": "https://api.github.com/users/ddsjoberg/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/ddsjoberg/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/ddsjoberg/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/ddsjoberg/subscriptions",
14 | "organizations_url": "https://api.github.com/users/ddsjoberg/orgs",
15 | "repos_url": "https://api.github.com/users/ddsjoberg/repos",
16 | "events_url": "https://api.github.com/users/ddsjoberg/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/ddsjoberg/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Daniel Sjoberg",
21 | "company": "MSKCC",
22 | "blog": "www.danieldsjoberg.com",
23 | "location": "NY, NY",
24 | "email": null,
25 | "hireable": null,
26 | "bio": "Biostatistician @sloan_kettering; \r\nDrPH candidate @columbia; \r\nGolden Girls Superfan",
27 | "twitter_username": "statistishdan",
28 | "public_repos": 64,
29 | "public_gists": 11,
30 | "followers": 231,
31 | "following": 37,
32 | "created_at": "2017-03-29T17:55:10Z",
33 | "updated_at": "2023-01-25T12:29:12Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ddsjoberg/gtsummary/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".Rbuildignore",
3 | ".Rprofile",
4 | ".covrignore",
5 | ".github",
6 | ".gitignore",
7 | "CITATION.cff",
8 | "DESCRIPTION",
9 | "LICENSE",
10 | "LICENSE.md",
11 | "NAMESPACE",
12 | "NEWS.md",
13 | "R",
14 | "README.Rmd",
15 | "README.md",
16 | "benchmark",
17 | "codecov.yml",
18 | "codemeta.json",
19 | "cran-comments.md",
20 | "data-raw",
21 | "data",
22 | "gtsummary.Rproj",
23 | "inst",
24 | "man-images",
25 | "man",
26 | "pkgdown",
27 | "tests",
28 | "vignettes",
29 | ]
30 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/duetosymmetry/qnm/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Leo C. Stein
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/duetosymmetry/qnm/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "duetosymmetry",
3 | "id": 679461,
4 | "node_id": "MDQ6VXNlcjY3OTQ2MQ==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/679461?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/duetosymmetry",
8 | "html_url": "https://github.com/duetosymmetry",
9 | "followers_url": "https://api.github.com/users/duetosymmetry/followers",
10 | "following_url": "https://api.github.com/users/duetosymmetry/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/duetosymmetry/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/duetosymmetry/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/duetosymmetry/subscriptions",
14 | "organizations_url": "https://api.github.com/users/duetosymmetry/orgs",
15 | "repos_url": "https://api.github.com/users/duetosymmetry/repos",
16 | "events_url": "https://api.github.com/users/duetosymmetry/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/duetosymmetry/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Leo C. Stein",
21 | "company": null,
22 | "blog": "https://duetosymmetry.com/",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": "Assistant Professor of Physics and Astronomy at U of MS. Gravitational waves, general relativity and beyond. Formerly at @caltech, @mit, Cornell",
27 | "twitter_username": "duetosymmetry",
28 | "public_repos": 78,
29 | "public_gists": 5,
30 | "followers": 265,
31 | "following": 239,
32 | "created_at": "2011-03-20T02:47:18Z",
33 | "updated_at": "2023-02-01T16:32:14Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/duetosymmetry/qnm/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "name": "qnm: Kerr quasinormal modes, separation constants, and spherical-spheroidal mixing coefficients calculator",
5 | "description": "qnm computes the Kerr quasinormal mode frequencies, angular separation constants, and spherical-spheroidal mixing coefficients. The qnm package includes a Leaver solver with the Cook-Zalutskiy spectral approach to the angular sector, and a caching mechanism to avoid repeating calculations. A large cache of low ℓ, m, n modes is available for download and can be installed with a single function call and interpolated to provide good initial guess for root-polishing at new values of spin.",
6 | "identifier": "ascl:1910.022",
7 | "author": [
8 | {
9 | "@type": "Person",
10 | "givenName": "Leo C.",
11 | "familyName": "Stein",
12 | "id": "https://orcid.org/0000-0001-7559-9597"
13 | }
14 | ],
15 | "citation": "https://inspirehep.net/record/1751578",
16 | "relatedLink": [
17 | "https://pypi.org/project/qnm/",
18 | "https://qnm.readthedocs.io/",
19 | "https://doi.org/10.5281/zenodo.2593978",
20 | "https://arxiv.org/abs/1908.10377"
21 | ],
22 | "codeRepository": "https://github.com/duetosymmetry/qnm",
23 | "programmingLanguage": "python",
24 | "referencePublication": [
25 | {
26 | "@type": "ScholarlyArticle",
27 | "url": "https://inspirehep.net/record/1751578",
28 | "id": "https://doi.org/10.21105/joss.01683"
29 | }
30 | ],
31 | "version": "0.4.0",
32 | "license": "https://spdx.org/licenses/MIT.html"
33 | }
34 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/duetosymmetry/qnm/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitattributes",
3 | ".github",
4 | ".gitignore",
5 | ".readthedocs.yml",
6 | "CITATION.bib",
7 | "CODE_OF_CONDUCT.md",
8 | "LICENSE",
9 | "README.md",
10 | "codemeta.json",
11 | "docs",
12 | "notebooks",
13 | "qnm",
14 | "requirements.txt",
15 | "setup.py",
16 | "test",
17 | ]
18 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/FAIRshare-Docs/CITATION.cff:
--------------------------------------------------------------------------------
1 | abstract: Documentation for the FAIRshare application
2 | authors:
3 | - affiliation: FAIR Data Innovations Hub
4 | email: ssoundarajan@calmi2.org
5 | family-names: Soundarajan
6 | given-names: Sanjay
7 | - affiliation: California Medical Innovations Institute
8 | email: bpatel@calmi2.org
9 | family-names: Patel
10 | given-names: Bhavesh
11 | cff-version: 1.2.0
12 | date-released: '2023-02-24'
13 | identifiers:
14 | - description: DOI for this software's record on Zenodo
15 | type: doi
16 | value: https://doi.org/10.5281/zenodo.7675563
17 | keywords:
18 | - FAIR
19 | - data
20 | - curation
21 | - documentation
22 | - electron
23 | - macos
24 | - ubuntu
25 | - windows
26 | license: MIT
27 | message: If you use this software, please cite it as below.
28 | repository-artifact: https://github.com/fairdataihub/FAIRshare-Docs
29 | repository-code: https://github.com/fairdataihub/FAIRshare-Docs
30 | title: FAIRshare docs
31 | type: software
32 | url: https://fairdataihub.org/
33 | version: 4.2.21
34 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/FAIRshare-Docs/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "fairdataihub",
3 | "id": 90935916,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwOTM1OTE2",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/90935916?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/fairdataihub",
8 | "html_url": "https://github.com/fairdataihub",
9 | "followers_url": "https://api.github.com/users/fairdataihub/followers",
10 | "following_url": "https://api.github.com/users/fairdataihub/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/fairdataihub/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/fairdataihub/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/fairdataihub/subscriptions",
14 | "organizations_url": "https://api.github.com/users/fairdataihub/orgs",
15 | "repos_url": "https://api.github.com/users/fairdataihub/repos",
16 | "events_url": "https://api.github.com/users/fairdataihub/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/fairdataihub/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "FAIR Data Innovations Hub",
21 | "company": null,
22 | "blog": "https://fairdataihub.org",
23 | "location": "United States of America",
24 | "email": "info@fairdataihub.org",
25 | "hireable": null,
26 | "bio": "We build open source tools to help researchers learn about and implement FAIR Data practices",
27 | "twitter_username": null,
28 | "public_repos": 25,
29 | "public_gists": 0,
30 | "followers": 10,
31 | "following": 0,
32 | "created_at": "2021-09-17T20:59:37Z",
33 | "updated_at": "2023-01-22T13:59:13Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/FAIRshare-Docs/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".editorconfig",
3 | ".eslintrc",
4 | ".github",
5 | ".gitignore",
6 | ".husky",
7 | ".prettierrc",
8 | ".zenodo.json",
9 | "CHANGELOG.md",
10 | "CITATION.cff",
11 | "CODE_OF_CONDUCT.md",
12 | "CONTRIBUTING.md",
13 | "LICENSE",
14 | "README.md",
15 | "api",
16 | "babel.config.js",
17 | "codemeta.json",
18 | "commitlint.config.js",
19 | "devmoji.config.js",
20 | "docs.compatibility.json",
21 | "docs",
22 | "docusaurus.config.js",
23 | "package.json",
24 | "postcss.config.js",
25 | "release.config.js",
26 | "renovate.json",
27 | "sidebars.js",
28 | "src",
29 | "static",
30 | "tailwind.config.js",
31 | "vercel.json",
32 | "versioned_docs",
33 | "versioned_sidebars",
34 | "versions.json",
35 | "yarn.lock",
36 | ]
37 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/SODA-for-SPARC/CITATION.cff:
--------------------------------------------------------------------------------
1 | # This CITATION.cff file was generated with FAIRshare.
2 | # Visit https://fairdataihub.org/fairshare to learn more!
3 |
4 | abstract: Simplifying data curation for researchers funded by the NIH SPARC initiative
5 | authors:
6 | - affiliation: FAIR Data Innovations Hub
7 | email: bpatel@calmi2.org
8 | family-names: Patel
9 | given-names: Bhavesh
10 | - affiliation: FAIR Data Innovations Hub
11 | email: ssoundarajan@calmi2.org
12 | family-names: Soundarajan
13 | given-names: Sanjay
14 | - affiliation: FAIR Data Innovations Hub
15 | email: cmarroquin@calmi2.org
16 | family-names: Marroquin
17 | given-names: Aaron
18 | - affiliation: FAIR Data Innovations Hub
19 | email: jclark@calmi2.org
20 | family-names: Clark
21 | given-names: Jacob
22 | - affiliation: FAIR Data Innovations Hub
23 | email: dportillo@calmi2.org
24 | family-names: Portillo
25 | given-names: Dorian
26 | cff-version: 1.2.0
27 | date-released: '2023-02-24'
28 | identifiers:
29 | - description: DOI for this software's record on Zenodo
30 | type: doi
31 | value: 10.5281/zenodo.7682467
32 | keywords:
33 | - SPARC
34 | - FAIR
35 | - data
36 | - curation
37 | - mac
38 | - sparc-dataset
39 | - ubuntu
40 | - windows
41 | license: MIT
42 | message: If you use this software, please cite it as below.
43 | repository-artifact: https://fairdataihub.org/sodaforsparc
44 | repository-code: https://github.com/fairdataihub/SODA-for-SPARC
45 | title: SODA (Software to Organize Data Automatically) for SPARC
46 | type: software
47 | url: https://fairdataihub.org/
48 | version: 10.0.2
49 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/SODA-for-SPARC/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/SODA-for-SPARC/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "fairdataihub",
3 | "id": 90935916,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwOTM1OTE2",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/90935916?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/fairdataihub",
8 | "html_url": "https://github.com/fairdataihub",
9 | "followers_url": "https://api.github.com/users/fairdataihub/followers",
10 | "following_url": "https://api.github.com/users/fairdataihub/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/fairdataihub/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/fairdataihub/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/fairdataihub/subscriptions",
14 | "organizations_url": "https://api.github.com/users/fairdataihub/orgs",
15 | "repos_url": "https://api.github.com/users/fairdataihub/repos",
16 | "events_url": "https://api.github.com/users/fairdataihub/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/fairdataihub/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "FAIR Data Innovations Hub",
21 | "company": null,
22 | "blog": "https://fairdataihub.org",
23 | "location": "United States of America",
24 | "email": "info@fairdataihub.org",
25 | "hireable": null,
26 | "bio": "We build open source tools to help researchers learn about and implement FAIR Data practices",
27 | "twitter_username": null,
28 | "public_repos": 25,
29 | "public_gists": 0,
30 | "followers": 10,
31 | "following": 0,
32 | "created_at": "2021-09-17T20:59:37Z",
33 | "updated_at": "2023-01-22T13:59:13Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/fairdataihub/SODA-for-SPARC/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".github",
3 | ".gitignore",
4 | ".husky",
5 | ".prettierignore",
6 | ".storybook",
7 | ".zenodo.json",
8 | "CHANGELOG.md",
9 | "CITATION.cff",
10 | "CODE_OF_CONDUCT.md",
11 | "CONTRIBUTING.md",
12 | "LICENSE",
13 | "README.md",
14 | "assets",
15 | "codemeta.json",
16 | "commitlint.config.js",
17 | "debian.json",
18 | "devmoji.config.js",
19 | "docs",
20 | "entitlements.mac.inherit.plist",
21 | "file_templates",
22 | "index.html",
23 | "main-process",
24 | "main.js",
25 | "notarize.js",
26 | "package-lock.json",
27 | "package.json",
28 | "pennsieve-io-chain.pem",
29 | "preload.js",
30 | "prettier.config.js",
31 | "pyflask",
32 | "renderer-process",
33 | "renovate.json",
34 | "scripts",
35 | "sections",
36 | "soda_json_file.json",
37 | "splash-screen.html",
38 | "stories",
39 | "tools",
40 | ]
41 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/gem-pasteur/Integron_Finder/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "gem-pasteur",
3 | "id": 5920106,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjU5MjAxMDY=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/5920106?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/gem-pasteur",
8 | "html_url": "https://github.com/gem-pasteur",
9 | "followers_url": "https://api.github.com/users/gem-pasteur/followers",
10 | "following_url": "https://api.github.com/users/gem-pasteur/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/gem-pasteur/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/gem-pasteur/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/gem-pasteur/subscriptions",
14 | "organizations_url": "https://api.github.com/users/gem-pasteur/orgs",
15 | "repos_url": "https://api.github.com/users/gem-pasteur/repos",
16 | "events_url": "https://api.github.com/users/gem-pasteur/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/gem-pasteur/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": null,
21 | "company": null,
22 | "blog": "https://research.pasteur.fr/en/team/microbial-evolutionary-genomics/",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 5,
29 | "public_gists": 0,
30 | "followers": 3,
31 | "following": 0,
32 | "created_at": "2013-11-12T14:28:05Z",
33 | "updated_at": "2022-09-15T12:13:48Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/gem-pasteur/Integron_Finder/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".github",
3 | ".gitignore",
4 | ".travis.yml",
5 | ".workflow-index.yml",
6 | "CITATION.cff",
7 | "CONTRIBUTING.md",
8 | "CONTRIBUTORS.md",
9 | "COPYING",
10 | "COPYRIGHT",
11 | "MANIFEST.in",
12 | "README.md",
13 | "codemeta.json",
14 | "doc",
15 | "docker",
16 | "integron_finder",
17 | "nextflow.config",
18 | "parallel_integron_finder.nf",
19 | "pyproject.toml",
20 | "setup.cfg",
21 | "setup.py",
22 | "tests",
23 | ]
24 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/karthik/wesanderson/LICENSE:
--------------------------------------------------------------------------------
1 | YEAR: 2022
2 | COPYRIGHT HOLDER: Karthik Ram
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/karthik/wesanderson/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "karthik",
3 | "id": 138494,
4 | "node_id": "MDQ6VXNlcjEzODQ5NA==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/138494?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/karthik",
8 | "html_url": "https://github.com/karthik",
9 | "followers_url": "https://api.github.com/users/karthik/followers",
10 | "following_url": "https://api.github.com/users/karthik/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/karthik/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/karthik/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/karthik/subscriptions",
14 | "organizations_url": "https://api.github.com/users/karthik/orgs",
15 | "repos_url": "https://api.github.com/users/karthik/repos",
16 | "events_url": "https://api.github.com/users/karthik/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/karthik/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Karthik Ram",
21 | "company": "@ucberkeley @ropensci @si2-urssi",
22 | "blog": "https://ram.berkeley.edu",
23 | "location": "Berkeley, CA",
24 | "email": null,
25 | "hireable": true,
26 | "bio": "Research associate professor at UC Berkeley and director of @ropensci. ",
27 | "twitter_username": "_inundata",
28 | "public_repos": 217,
29 | "public_gists": 96,
30 | "followers": 1092,
31 | "following": 21,
32 | "created_at": "2009-10-12T04:41:48Z",
33 | "updated_at": "2023-02-01T23:21:34Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/karthik/wesanderson/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".Rbuildignore",
3 | ".github",
4 | ".gitignore",
5 | ".travis.yml",
6 | "DESCRIPTION",
7 | "LICENSE",
8 | "NAMESPACE",
9 | "NEWS",
10 | "R",
11 | "README.Rmd",
12 | "README.md",
13 | "codemeta.json",
14 | "cran-comments.md",
15 | "data",
16 | "figure",
17 | "man",
18 | "rushmore.jpg",
19 | "wesanderson.Rproj",
20 | ]
21 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/mne-tools/mne-python/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright © 2011-2022, authors of MNE-Python
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 | * Redistributions of source code must retain the above copyright
7 | notice, this list of conditions and the following disclaimer.
8 | * Redistributions in binary form must reproduce the above copyright
9 | notice, this list of conditions and the following disclaimer in the
10 | documentation and/or other materials provided with the distribution.
11 | * Neither the name of the copyright holder nor the names of its
12 | contributors may be used to endorse or promote products derived from
13 | this software without specific prior written permission.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 | DISCLAIMED. IN NO EVENT SHALL COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/mne-tools/mne-python/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "mne-tools",
3 | "id": 583875,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjU4Mzg3NQ==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/583875?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/mne-tools",
8 | "html_url": "https://github.com/mne-tools",
9 | "followers_url": "https://api.github.com/users/mne-tools/followers",
10 | "following_url": "https://api.github.com/users/mne-tools/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/mne-tools/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/mne-tools/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/mne-tools/subscriptions",
14 | "organizations_url": "https://api.github.com/users/mne-tools/orgs",
15 | "repos_url": "https://api.github.com/users/mne-tools/repos",
16 | "events_url": "https://api.github.com/users/mne-tools/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/mne-tools/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "MNE tools for MEG and EEG data analysis",
21 | "company": null,
22 | "blog": "http://mne.tools",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 40,
29 | "public_gists": 0,
30 | "followers": 70,
31 | "following": 0,
32 | "created_at": "2011-01-26T02:24:38Z",
33 | "updated_at": "2023-01-11T12:11:46Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/mne-tools/mne-python/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".circleci",
3 | ".cirrus.yml",
4 | ".coveragerc",
5 | ".github",
6 | ".gitignore",
7 | ".lgtm.yml",
8 | ".mailmap",
9 | "CITATION.cff",
10 | "CONTRIBUTING.md",
11 | "LICENSE.txt",
12 | "MANIFEST.in",
13 | "Makefile",
14 | "README.rst",
15 | "SECURITY.md",
16 | "azure-pipelines.yml",
17 | "codecov.yml",
18 | "codemeta.json",
19 | "doc",
20 | "environment.yml",
21 | "examples",
22 | "ignore_words.txt",
23 | "logo",
24 | "mne",
25 | "requirements.txt",
26 | "requirements_base.txt",
27 | "requirements_doc.txt",
28 | "requirements_hdf5.txt",
29 | "requirements_testing.txt",
30 | "requirements_testing_extra.txt",
31 | "setup.cfg",
32 | "setup.py",
33 | "tools",
34 | "tutorials",
35 | ]
36 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/o2r-project/o2r-meta/CITATION.cff:
--------------------------------------------------------------------------------
1 | cff-version: 1.1.0
2 | message: "If you use this software, please cite it as 'Nüst, Daniel, 2018. Reproducibility Service for Executable Research Compendia: Technical Specifications and Reference Implementation. Zenodo. https://doi.org/10.5281/zenodo.2203843'."
3 | authors:
4 | - family-names: Schutzeichel
5 | given-names: Marc
6 | affiliation: University of Münster, Münster, Germany
7 | - family-names: Nüst
8 | given-names: Daniel
9 | orcid: https://orcid.org/0000-0002-0024-5046
10 | affiliation: Opening Reproducible Research, University of Münster, Münster, Germany
11 | email: daniel.nuest@uni-muenster.de
12 | website: https://nuest.staff.ifgi.de/
13 | - family-names: Konkol
14 | given-names: Markus
15 | affiliation: Opening Reproducible Research, University of Münster, Münster, Germany
16 | website: https://github.com/Timmimim
17 | - family-names: Suleiman
18 | given-names: Jan
19 | affiliation: Opening Reproducible Research, University of Münster, Münster, Germany
20 | website: https://github.com/jansule
21 | - family-names: Garzon
22 | given-names: Sebastian
23 | orcid: https://orcid.org/0000-0002-8335-9312
24 | affiliation: Opening Reproducible Research, University of Münster, Münster, Germany
25 | website: https://github.com/sbastiangarzon
26 |
27 | title: "o2r-meta"
28 | version: 0.1.0
29 | date-released: 2020-07-02
30 | license: Apache-2.0
31 | url: https://github.com/o2r-project/o2r-meta/
32 | commit: 1447d43a660e1a38add5736d0b0dc52e6860c0e0
33 | abstract: "Python library for extracting, mapping, and validating metadata for reproducible workflows in scholarly communication."
34 | repository-code: https://github.com/o2r-project/o2r-meta/releases/tag/v0.1.0
35 | identifiers:
36 | - type: "swh"
37 | value: "swh:1:rev:fb1a32f9819aef9ff37af4984048ab5b0a85e81f"
38 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/o2r-project/o2r-meta/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "o2r-project",
3 | "id": 16774537,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2Nzc0NTM3",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/16774537?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/o2r-project",
8 | "html_url": "https://github.com/o2r-project",
9 | "followers_url": "https://api.github.com/users/o2r-project/followers",
10 | "following_url": "https://api.github.com/users/o2r-project/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/o2r-project/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/o2r-project/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/o2r-project/subscriptions",
14 | "organizations_url": "https://api.github.com/users/o2r-project/orgs",
15 | "repos_url": "https://api.github.com/users/o2r-project/repos",
16 | "events_url": "https://api.github.com/users/o2r-project/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/o2r-project/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Opening Reproducible Research",
21 | "company": null,
22 | "blog": "http://o2r.info",
23 | "location": "Münster",
24 | "email": "daniel.nuest@uni-muenster.de",
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 52,
29 | "public_gists": 0,
30 | "followers": 3,
31 | "following": 0,
32 | "created_at": "2016-01-19T09:04:57Z",
33 | "updated_at": "2016-05-02T08:13:08Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/o2r-project/o2r-meta/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitattributes",
3 | ".github",
4 | ".gitignore",
5 | ".travis.yml",
6 | "AUTHORS",
7 | "CITATION.cff",
8 | "CONDUCT.md",
9 | "Dockerfile",
10 | "LICENSE",
11 | "README.md",
12 | "codemeta.json",
13 | "docs",
14 | "harvest",
15 | "hooks",
16 | "o2rmeta",
17 | "requirements-dev.txt",
18 | "requirements-opt.txt",
19 | "requirements.txt",
20 | "setup.py",
21 | "tests",
22 | ]
23 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/open-mpi/hwloc/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "open-mpi",
3 | "id": 2165682,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjIxNjU2ODI=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/2165682?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/open-mpi",
8 | "html_url": "https://github.com/open-mpi",
9 | "followers_url": "https://api.github.com/users/open-mpi/followers",
10 | "following_url": "https://api.github.com/users/open-mpi/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/open-mpi/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/open-mpi/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/open-mpi/subscriptions",
14 | "organizations_url": "https://api.github.com/users/open-mpi/orgs",
15 | "repos_url": "https://api.github.com/users/open-mpi/repos",
16 | "events_url": "https://api.github.com/users/open-mpi/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/open-mpi/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "Open MPI",
21 | "company": null,
22 | "blog": "https://www.open-mpi.org",
23 | "location": null,
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 25,
29 | "public_gists": 0,
30 | "followers": 37,
31 | "following": 0,
32 | "created_at": "2012-08-16T21:43:12Z",
33 | "updated_at": "2023-01-28T12:22:40Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/open-mpi/hwloc/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".github",
3 | ".gitignore",
4 | "AUTHORS",
5 | "COPYING",
6 | "HACKING",
7 | "Makefile.am",
8 | "NEWS",
9 | "README",
10 | "VERSION",
11 | "autogen.sh",
12 | "codemeta.json",
13 | "config",
14 | "configure.ac",
15 | "contrib",
16 | "doc",
17 | "hwloc.pc.in",
18 | "hwloc",
19 | "include",
20 | "netloc.pc.in",
21 | "netloc",
22 | "netlocscotch.pc.in",
23 | "tests",
24 | "utils",
25 | ]
26 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/pat-s/oddsratio/LICENSE:
--------------------------------------------------------------------------------
1 | YEAR: 2016
2 | COPYRIGHT HOLDER: Patrick Schratz
3 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/pat-s/oddsratio/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "pat-s",
3 | "id": 8430564,
4 | "node_id": "MDQ6VXNlcjg0MzA1NjQ=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/8430564?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/pat-s",
8 | "html_url": "https://github.com/pat-s",
9 | "followers_url": "https://api.github.com/users/pat-s/followers",
10 | "following_url": "https://api.github.com/users/pat-s/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/pat-s/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/pat-s/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/pat-s/subscriptions",
14 | "organizations_url": "https://api.github.com/users/pat-s/orgs",
15 | "repos_url": "https://api.github.com/users/pat-s/repos",
16 | "events_url": "https://api.github.com/users/pat-s/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/pat-s/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Patrick Schratz",
21 | "company": "cynkra GmbH",
22 | "blog": "https://pat-s.me",
23 | "location": "Zurich, CH",
24 | "email": null,
25 | "hireable": null,
26 | "bio": "DevOps, FOSS, #rstats",
27 | "twitter_username": "patscli",
28 | "public_repos": 88,
29 | "public_gists": 24,
30 | "followers": 276,
31 | "following": 19,
32 | "created_at": "2014-08-12T18:08:05Z",
33 | "updated_at": "2023-01-30T10:38:44Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/pat-s/oddsratio/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".Rbuildignore",
3 | ".gitattributes",
4 | ".github",
5 | ".gitignore",
6 | ".lintr",
7 | ".pre-commit-config.yaml",
8 | ".travis.yml",
9 | "DESCRIPTION",
10 | "LICENSE",
11 | "NAMESPACE",
12 | "NEWS.md",
13 | "R",
14 | "README.md",
15 | "codemeta.json",
16 | "cran-comments.md",
17 | "data",
18 | "inst",
19 | "man",
20 | "oddsratio.Rproj",
21 | "pkgdown",
22 | "tests",
23 | "tic.R",
24 | "vignettes",
25 | ]
26 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/proycon/codemeta-harvester/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "proycon",
3 | "id": 75427,
4 | "node_id": "MDQ6VXNlcjc1NDI3",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/75427?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/proycon",
8 | "html_url": "https://github.com/proycon",
9 | "followers_url": "https://api.github.com/users/proycon/followers",
10 | "following_url": "https://api.github.com/users/proycon/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/proycon/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/proycon/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/proycon/subscriptions",
14 | "organizations_url": "https://api.github.com/users/proycon/orgs",
15 | "repos_url": "https://api.github.com/users/proycon/repos",
16 | "events_url": "https://api.github.com/users/proycon/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/proycon/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Maarten van Gompel",
21 | "company": "KNAW Humanities Cluster & CLST, Radboud University",
22 | "blog": "https://proycon.anaproy.nl",
23 | "location": "Eindhoven, the Netherlands",
24 | "email": null,
25 | "hireable": null,
26 | "bio": "Research software engineer - NLP - AI - 🐧 Linux & open-source enthusiast - 🐍 Python/ 🌊C/C++ / 🦀 Rust / 🐚 Shell - 🔐 InfoSec - https://git.sr.ht/~proycon\r\n",
27 | "twitter_username": null,
28 | "public_repos": 187,
29 | "public_gists": 21,
30 | "followers": 209,
31 | "following": 100,
32 | "created_at": "2009-04-19T14:06:29Z",
33 | "updated_at": "2023-01-27T14:01:51Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/proycon/codemeta-harvester/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitignore",
3 | "Dockerfile",
4 | "LICENSE",
5 | "Makefile",
6 | "README.md",
7 | "codemeta-harvester",
8 | "codemeta.json",
9 | "detect-ci.sh",
10 | "detect-documentation.sh",
11 | "detect-license.sh",
12 | "detect-repostatus-from-git.sh",
13 | "detect-repostatus.sh",
14 | "detect-trl.sh",
15 | "example",
16 | ]
17 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ropensci/mctq/LICENSE:
--------------------------------------------------------------------------------
1 | YEAR: 2023
2 | COPYRIGHT HOLDER: Daniel Vartanian
3 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ropensci/mctq/LICENSE.md:
--------------------------------------------------------------------------------
1 | # MIT License
2 |
3 | Copyright (c) 2023 Daniel Vartanian
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ropensci/mctq/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "ropensci",
3 | "id": 1200269,
4 | "node_id": "MDEyOk9yZ2FuaXphdGlvbjEyMDAyNjk=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/1200269?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/ropensci",
8 | "html_url": "https://github.com/ropensci",
9 | "followers_url": "https://api.github.com/users/ropensci/followers",
10 | "following_url": "https://api.github.com/users/ropensci/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/ropensci/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/ropensci/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/ropensci/subscriptions",
14 | "organizations_url": "https://api.github.com/users/ropensci/orgs",
15 | "repos_url": "https://api.github.com/users/ropensci/repos",
16 | "events_url": "https://api.github.com/users/ropensci/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/ropensci/received_events",
18 | "type": "Organization",
19 | "site_admin": false,
20 | "name": "rOpenSci",
21 | "company": null,
22 | "blog": "https://ropensci.org/",
23 | "location": "Berkeley, CA",
24 | "email": "info@ropensci.org",
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": "rOpenSci",
28 | "public_repos": 341,
29 | "public_gists": 0,
30 | "followers": 320,
31 | "following": 0,
32 | "created_at": "2011-11-16T19:26:47Z",
33 | "updated_at": "2023-02-14T13:58:23Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/ropensci/mctq/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".Rbuildignore",
3 | ".github",
4 | ".gitignore",
5 | ".lintr",
6 | "CITATION.cff",
7 | "DESCRIPTION",
8 | "LICENSE",
9 | "LICENSE.md",
10 | "NAMESPACE",
11 | "NEWS.md",
12 | "R",
13 | "README.Rmd",
14 | "README.md",
15 | "_pkgdown.yml",
16 | "codecov.yml",
17 | "codemeta.json",
18 | "cran-comments.md",
19 | "data-raw",
20 | "data",
21 | "inst",
22 | "man-roxygen",
23 | "man",
24 | "mctq.Rproj",
25 | "tests",
26 | "vignettes",
27 | ]
28 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/smsaladi/em_data_requirements/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Shyam Saladi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/smsaladi/em_data_requirements/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "smsaladi",
3 | "id": 2942215,
4 | "node_id": "MDQ6VXNlcjI5NDIyMTU=",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/2942215?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/smsaladi",
8 | "html_url": "https://github.com/smsaladi",
9 | "followers_url": "https://api.github.com/users/smsaladi/followers",
10 | "following_url": "https://api.github.com/users/smsaladi/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/smsaladi/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/smsaladi/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/smsaladi/subscriptions",
14 | "organizations_url": "https://api.github.com/users/smsaladi/orgs",
15 | "repos_url": "https://api.github.com/users/smsaladi/repos",
16 | "events_url": "https://api.github.com/users/smsaladi/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/smsaladi/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Shyam Saladi",
21 | "company": "@clemlab, Caltech",
22 | "blog": "https://shyam.saladi.org",
23 | "location": "zsh",
24 | "email": null,
25 | "hireable": null,
26 | "bio": null,
27 | "twitter_username": null,
28 | "public_repos": 99,
29 | "public_gists": 7,
30 | "followers": 38,
31 | "following": 41,
32 | "created_at": "2012-12-02T03:34:20Z",
33 | "updated_at": "2023-01-26T12:46:48Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/smsaladi/em_data_requirements/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "description": "Big microscopes are on the rise, and with them comes a deluge of data! How will to deal with it? Try this customizable 'back of the envelope' calculation to estimate where your hardware bottlenecks might be!",
5 | "name": "em_data_requirements",
6 | "codeRepository": "https://github.com/smsaladi/em_data_requirements",
7 | "issueTracker": "https://github.com/smsaladi/em_data_requirements/issues",
8 | "license": "https://spdx.org/licenses/MIT.html",
9 | "version": "1.0",
10 | "author": [
11 | {
12 | "@type": "Person",
13 | "givenName": "Shyam M.",
14 | "familyName": "Saladi",
15 | "affiliation": "Caltech",
16 | "email": "saladi@caltech.edu",
17 | "@id": "https://orcid.org/0000-0001-9701-3059"
18 | }],
19 | "developmentStatus": "active",
20 | "downloadUrl":
21 | "https://github.com/smsaladi/em_data_requirements/archive/1.0.zip",
22 | "keywords": [
23 | "GitHub",
24 | "EM",
25 | "computer-hardware",
26 | "big-data"
27 | ],
28 | "maintainer": "https://orcid.org/0000-0001-9701-3059",
29 | "programmingLanguage": "R",
30 | "funder": {
31 | "@id": "https://doi.org/10.13039/100000001",
32 | "@type": "Organization",
33 | "name": "National Science Foundation"
34 | },
35 | "funding": "1144469"
36 | }
37 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/smsaladi/em_data_requirements/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".gitignore",
3 | ".travis.yml",
4 | "DESCRIPTION",
5 | "LICENSE",
6 | "README.md",
7 | "app.R",
8 | "build.R",
9 | "codemeta.json",
10 | "em_data_requirements.Rproj",
11 | "github_corner.html",
12 | "google_analytics.js",
13 | ]
14 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/stain/signposting/CITATION.cff:
--------------------------------------------------------------------------------
1 | cff-version: 1.2.0
2 | message: "If you use this software, please cite it as below."
3 | abstract: "This library helps client to discover links that follow the FAIR Signposting conventions."
4 | authors:
5 | - family-names: Soiland-Reyes
6 | given-names: Stian
7 | orcid: https://orcid.org/0000-0001-9842-9718
8 | - family-names: Kinoshita
9 | given-names: Bruno P.
10 | orcid: https://orcid.org/0000-0001-8250-4074"
11 | title: "Signposting link parser library"
12 | doi: 10.5281/zenodo.6815412
13 | version: 0.9.0
14 | license: Apache-2.0
15 | repository-code: "https://github.com/stain/signposting/"
16 | keywords:
17 | - "FAIR"
18 | - "signposting"
19 | - "linkset"
20 | - "http"
21 | - "links"
22 | - "RFC8288"
23 | - "RFC9264"
24 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/stain/signposting/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "stain",
3 | "id": 253413,
4 | "node_id": "MDQ6VXNlcjI1MzQxMw==",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/253413?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/stain",
8 | "html_url": "https://github.com/stain",
9 | "followers_url": "https://api.github.com/users/stain/followers",
10 | "following_url": "https://api.github.com/users/stain/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/stain/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/stain/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/stain/subscriptions",
14 | "organizations_url": "https://api.github.com/users/stain/orgs",
15 | "repos_url": "https://api.github.com/users/stain/repos",
16 | "events_url": "https://api.github.com/users/stain/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/stain/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Stian Soiland-Reyes",
21 | "company": "eScience lab, University of Manchester",
22 | "blog": "https://orcid.org/0000-0001-9842-9718",
23 | "location": "Manchester, UK",
24 | "email": null,
25 | "hireable": true,
26 | "bio": "Open Source research software engineer with interests in Linked Data, RESTful web services, provenance, annotations, open science, reproducible research",
27 | "twitter_username": "soilandreyes",
28 | "public_repos": 329,
29 | "public_gists": 255,
30 | "followers": 140,
31 | "following": 14,
32 | "created_at": "2010-04-26T19:24:45Z",
33 | "updated_at": "2022-11-14T07:23:31Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/stain/signposting/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".bumpversion.cfg",
3 | ".codacy.yaml",
4 | ".codeclimate.yml",
5 | ".coveragerc",
6 | ".github",
7 | ".gitignore",
8 | ".readthedocs.yml",
9 | "CITATION.cff",
10 | "LICENSE",
11 | "MANIFEST.in",
12 | "Makefile",
13 | "README.rst",
14 | "codemeta.json",
15 | "devtools",
16 | "docs",
17 | "setup.py",
18 | "src",
19 | "stubs",
20 | "tests",
21 | "tox.ini",
22 | ]
23 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/sulstice/global-chem/account.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": "Sulstice",
3 | "id": 11812946,
4 | "node_id": "MDQ6VXNlcjExODEyOTQ2",
5 | "avatar_url": "https://avatars.githubusercontent.com/u/11812946?v=4",
6 | "gravatar_id": "",
7 | "url": "https://api.github.com/users/Sulstice",
8 | "html_url": "https://github.com/Sulstice",
9 | "followers_url": "https://api.github.com/users/Sulstice/followers",
10 | "following_url": "https://api.github.com/users/Sulstice/following{/other_user}",
11 | "gists_url": "https://api.github.com/users/Sulstice/gists{/gist_id}",
12 | "starred_url": "https://api.github.com/users/Sulstice/starred{/owner}{/repo}",
13 | "subscriptions_url": "https://api.github.com/users/Sulstice/subscriptions",
14 | "organizations_url": "https://api.github.com/users/Sulstice/orgs",
15 | "repos_url": "https://api.github.com/users/Sulstice/repos",
16 | "events_url": "https://api.github.com/users/Sulstice/events{/privacy}",
17 | "received_events_url": "https://api.github.com/users/Sulstice/received_events",
18 | "type": "User",
19 | "site_admin": false,
20 | "name": "Sul ",
21 | "company": "@mackerell-lab",
22 | "blog": "https://linktr.ee/sulstice",
23 | "location": "United States",
24 | "email": null,
25 | "hireable": true,
26 | "bio": "I'm a 3rd Year Doctorate Student who loves organic chemistry, devops, chemicals, social media, stock marketing, art, and law. I try to develop in those areas.",
27 | "twitter_username": "SulimanSharif6",
28 | "public_repos": 125,
29 | "public_gists": 13,
30 | "followers": 73,
31 | "following": 56,
32 | "created_at": "2015-04-06T04:18:58Z",
33 | "updated_at": "2022-12-23T01:39:54Z"
34 | }
35 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/sulstice/global-chem/codemeta.json:
--------------------------------------------------------------------------------
1 | {
2 | "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3 | "@type": "SoftwareSourceCode",
4 | "license": "https://spdx.org/licenses/MPL-2.0",
5 | "codeRepository": "git+https://github.com/Sulstice/global-chem.git",
6 | "contIntegration": "https://github.com/Sulstice/global-chem/actions",
7 | "dateCreated": "2019-04-20",
8 | "datePublished": "2019-04-20",
9 | "dateModified": "2022-08-25",
10 | "downloadUrl": "https://github.com/Sulstice/global-chem/archive/refs/tags/v1.7.3.2.tar.gz",
11 | "issueTracker": "https://github.com/Sulstice/global-chem/issues",
12 | "name": "Global-Chem",
13 | "version": "1.7.3.2",
14 | "identifier": "10.5281/zenodo.7029446",
15 | "description": "A knowledge graph of common small molecules and their IUPAC/SMILES/SMARTS",
16 | "applicationCategory": "Chemistry",
17 | "funding": "N/A",
18 | "developmentStatus": "active",
19 | "funder": {
20 | "@type": "Organization",
21 | "name": "N/A"
22 | },
23 | "keywords": [
24 | "cheminformatics",
25 | "IUPAC",
26 | "SMILES",
27 | "SMARTS"
28 | ],
29 | "programmingLanguage": [
30 | "Python3"
31 | ],
32 | "runtimePlatform": [
33 | "Python",
34 | "Conda"
35 | ],
36 | "operatingSystem": [
37 | "Linux",
38 | "Windows",
39 | "MacOS"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/tests/data/github-examples/with-codemeta/sulstice/global-chem/filenames.json:
--------------------------------------------------------------------------------
1 | [
2 | ".coveralls.yml",
3 | ".github",
4 | ".gitignore",
5 | ".mergify.yml",
6 | ".pre-commit-config.yaml",
7 | "CITATION.cff",
8 | "CNAME",
9 | "LICENSE",
10 | "MANIFEST.in",
11 | "README.md",
12 | "academic",
13 | "bot_services",
14 | "codemeta.json",
15 | "compliance_and_quality_assurance",
16 | "example_data",
17 | "example_notebooks",
18 | "front_end",
19 | "global_chem",
20 | "global_chem_extensions",
21 | "images",
22 | "index.html",
23 | "readme_in_other_languages",
24 | "social_guidelines",
25 | "test.py",
26 | ]
27 |
--------------------------------------------------------------------------------
/tests/data/orcid-examples/0000-0001-6151-2200.json:
--------------------------------------------------------------------------------
1 | {"title": "Given Names Deactivated Family Name Deactivated (0000-0001-6151-2200) - ORCID | Connecting Research and Researchers", "displayName": "Given Names Deactivated Family Name Deactivated", "names": {"visibility": {"errors": [], "required": true, "getRequiredMessage": null, "visibility": "PUBLIC"}, "errors": [], "givenNames": {"errors": [], "value": "Given Names Deactivated", "required": true, "getRequiredMessage": null}, "familyName": {"errors": [], "value": "Family Name Deactivated", "required": true, "getRequiredMessage": null}, "creditName": null}, "biography": null, "otherNames": null, "countries": null, "keyword": null, "emails": null, "externalIdentifier": null, "website": {"errors": [], "websites": [], "visibility": null}, "lastModifiedTime": 1490400917303}
--------------------------------------------------------------------------------
/tests/data/ror-examples/03ybx0x41.json:
--------------------------------------------------------------------------------
1 | {"id": "https://ror.org/03ybx0x41", "name": "Department of Biomedicine Basel", "email_address": null, "ip_addresses": [], "established": 2000, "types": ["Facility"], "relationships": [{"label": "University Children\u2019s Hospital Basel", "type": "Parent", "id": "https://ror.org/02nhqek82"}, {"label": "University Hospital of Basel", "type": "Parent", "id": "https://ror.org/04k51q396"}, {"label": "University of Basel", "type": "Parent", "id": "https://ror.org/02s6k3f65"}, {"label": "University of Basel", "type": "Successor", "id": "https://ror.org/02s6k3f65"}], "addresses": [{"lat": 47.55839, "lng": 7.57327, "state": null, "state_code": null, "city": "Basel", "geonames_city": {"id": 2661604, "city": "Basel", "geonames_admin1": {"name": "Basel-City", "id": 2661602, "ascii_name": "Basel-City", "code": "CH.BS"}, "geonames_admin2": {"name": "Basel-Stadt", "id": 6458763, "ascii_name": "Basel-Stadt", "code": "CH.BS.1200"}, "license": {"attribution": "Data from geonames.org under a CC-BY 3.0 license", "license": "http://creativecommons.org/licenses/by/3.0/"}, "nuts_level1": {"name": null, "code": null}, "nuts_level2": {"name": null, "code": null}, "nuts_level3": {"name": null, "code": null}}, "postcode": null, "primary": false, "line": null, "country_geonames_id": 2658434}], "links": ["https://biomedizin.unibas.ch/"], "aliases": ["Department of Biological and Clinical Sciences"], "acronyms": ["DBM"], "status": "withdrawn", "wikipedia_url": "", "labels": [], "country": {"country_name": "Switzerland", "country_code": "CH"}, "external_ids": {"Wikidata": {"preferred": null, "all": ["Q22387380"]}, "GRID": {"preferred": "grid.509969.a", "all": "grid.509969.a"}}}
--------------------------------------------------------------------------------
/tests/test_doi.py:
--------------------------------------------------------------------------------
1 | # =============================================================================
2 | # @file test_doi.py
3 | # @brief Py.test cases for doi.py
4 | # @created 2022-12-08
5 | # @license Please see the file named LICENSE in the project directory
6 | # @website https://github.com/caltechlibrary/iga
7 | # =============================================================================
8 |
9 | from iga.doi import doi_for_publication, _doi_for_pubmed
10 |
11 |
12 | # Tests
13 | # .............................................................................
14 |
15 | def test_doi_for_publication():
16 | assert doi_for_publication('') == ''
17 | assert doi_for_publication('10.1093/bioinformatics/btw056', 'doi') == '10.1093/bioinformatics/btw056'
18 | assert doi_for_publication('arXiv:2012.13117v1', 'arxiv') == '10.48550/arXiv.2012.13117v1'
19 | assert doi_for_publication('arXiv:2012.13117v1') == '10.48550/arXiv.2012.13117v1'
20 | assert doi_for_publication('PMC4908318') == '10.1093/bioinformatics/btw056'
21 | assert doi_for_publication('x965x9092') == ''
22 | assert doi_for_publication('26360422') == '10.1371/journal.pone.0137946'
23 |
24 |
25 | def test__doi_for_pubmed():
26 | assert _doi_for_pubmed('PMC4908318', 'pmcid') == '10.1093/bioinformatics/btw056'
27 | assert _doi_for_pubmed('34674411', 'pmid') == '10.1515/jib-2021-0026'
28 | assert _doi_for_pubmed('001001010100101', 'pmid') == ''
29 | assert _doi_for_pubmed('', 'pmid') == ''
30 | assert _doi_for_pubmed('_', 'pmid') == ''
31 |
--------------------------------------------------------------------------------
/tests/test_exceptions.py:
--------------------------------------------------------------------------------
1 | # =============================================================================
2 | # @file test_exceptions.py
3 | # @brief Py.test cases for parts of exceptions.py
4 | # @created 2023-03-02
5 | # @license Please see the file named LICENSE in the project directory
6 | # @website https://github.com/caltechlibrary/iga
7 | # =============================================================================
8 |
9 | from iga.exceptions import IGAException, InternalError
10 |
11 |
12 | def test_exceptions():
13 | try:
14 | raise InternalError('foo')
15 | except InternalError as ex:
16 | assert ex.args[0] == 'foo'
17 |
18 | try:
19 | raise InternalError('foo')
20 | except IGAException as ex:
21 | assert ex.args[0] == 'foo'
22 |
--------------------------------------------------------------------------------
/tests/test_exit_codes.py:
--------------------------------------------------------------------------------
1 | from iga.exit_codes import ExitCode
2 |
3 |
4 | def test_exitcode():
5 | assert int(ExitCode.success) == 0
6 | assert ExitCode.success.meaning == "success – program completed normally"
7 |
--------------------------------------------------------------------------------
/tests/test_github.py:
--------------------------------------------------------------------------------
1 | from os import path
2 | import json5
3 | from unittest.mock import patch
4 |
5 | import iga.github
6 | from iga.github import (
7 | GitHubRepo,
8 | github_account,
9 | github_account_repo_tag,
10 | github_file_url,
11 | valid_github_release_url)
12 |
13 |
14 | def test_github_account():
15 | account = github_account('mhucka')
16 | assert account
17 | assert account.login == "mhucka"
18 | assert account.type == "User"
19 |
20 | try:
21 | account = github_account('55fake99zxy100')
22 | except iga.github.GitHubError:
23 | pass
24 | else:
25 | assert False
26 |
27 |
28 | def test_github_account_repo_tag():
29 | url = 'https://github.com/foo/bar/releases/tag/v3.9.2'
30 | assert github_account_repo_tag(url) == ('foo', 'bar', 'v3.9.2')
31 |
32 |
33 | def test_github_valid_release_url():
34 | assert valid_github_release_url('https://github.com/foo/bar/releases/tag/v3.9.2')
35 | assert not valid_github_release_url('https://github.com/foo/bar/releases/tag')
36 |
37 |
38 | here = path.dirname(path.abspath(__file__))
39 | json_file = 'data/github-examples/with-codemeta/fairdataihub/FAIRshare-Docs/repo.json'
40 | with open(path.join(here, json_file), 'r') as f:
41 | repo_object = GitHubRepo(json5.loads(f.read()))
42 |
43 | @patch('iga.github.github_repo', autospec=True, return_value = repo_object)
44 | def test_repo_file_url(*args):
45 | repo = iga.github.github_repo('fairdataihub', 'FAIRshare-Docs')
46 | expected = 'https://github.com/fairdataihub/FAIRshare-Docs/blob/main/somefile'
47 | assert github_file_url(repo, 'somefile') == expected
48 |
--------------------------------------------------------------------------------
/tests/test_init.py:
--------------------------------------------------------------------------------
1 | # =============================================================================
2 | # @file test_init.py
3 | # @brief Py.test cases for module __init__.py file
4 | # @created 2022-12-08
5 | # @license Please see the file named LICENSE in the project directory
6 | # @website https://github.com/caltechlibrary/iga
7 | # =============================================================================
8 |
9 | def test_version():
10 | """Test version import."""
11 | from iga import __version__
12 | assert __version__
13 |
14 |
15 | def test_print_version(capsys):
16 | from iga import print_version
17 | print_version()
18 | captured = capsys.readouterr()
19 | assert 'URL' in captured.out
20 |
--------------------------------------------------------------------------------
/tests/test_licenses.py:
--------------------------------------------------------------------------------
1 | # =============================================================================
2 | # @file test_licenses.py
3 | # @brief Py.test cases for parts of licenses.py
4 | # @created 2023-03-02
5 | # @license Please see the file named LICENSE in the project directory
6 | # @website https://github.com/caltechlibrary/iga
7 | # =============================================================================
8 |
9 | from iga.licenses import LICENSES, LICENSE_URLS
10 |
11 |
12 | def test_licenses():
13 | assert len(LICENSES) > 100
14 | assert 'MIT' in LICENSES
15 | assert LICENSES['MIT'].title == 'MIT License'
16 | assert LICENSES['MIT'].url == 'https://spdx.org/licenses/MIT'
17 |
18 |
19 | def test_license_urls():
20 | assert 'https://spdx.org/licenses/MIT' in LICENSE_URLS
21 | assert 'https://opensource.org/licenses/MIT' in LICENSE_URLS
22 | assert LICENSE_URLS['https://spdx.org/licenses/MIT'] == 'MIT'
23 | assert 'https://spdx.org/licenses/BSD-3-Clause' in LICENSE_URLS
24 |
--------------------------------------------------------------------------------
/tests/test_orcid.py:
--------------------------------------------------------------------------------
1 | import json5
2 | from os import path
3 | from sidetrack import log
4 | from unittest import mock
5 |
6 | from iga.orcid import name_from_orcid
7 |
8 |
9 | # Mocks
10 | # .............................................................................
11 |
12 | here = path.dirname(path.abspath(__file__))
13 | orcid_dir = path.join(here, 'data/orcid-examples/')
14 |
15 |
16 | def mocked_orcid_data(orcid):
17 | log(f'returing mocked ORCID data for {orcid}')
18 | orcid_filename = orcid + '.json'
19 | with open(path.join(orcid_dir, orcid_filename), 'r') as f:
20 | return json5.load(f)
21 |
22 |
23 | # Tests
24 | # .............................................................................
25 |
26 | @mock.patch('iga.orcid.orcid_data', new=mocked_orcid_data)
27 | def test_name_from_orcid():
28 | assert name_from_orcid('0000-0001-9105-5960') == ('Michael', 'Hucka')
29 | assert name_from_orcid('https://orcid.org/0000-0003-0900-6903') == ('R. S.', 'Doiel')
30 | assert name_from_orcid('https://orcid.org/0000-0002-8876-7606') == ('Neil P.', 'Chue Hong')
31 | assert name_from_orcid('https://orcid.org/0000-0001-6151-2200') == ('', '')
32 |
--------------------------------------------------------------------------------
/tests/test_ror.py:
--------------------------------------------------------------------------------
1 | import json5
2 | import os
3 | from os import path
4 | from sidetrack import log
5 | from unittest import mock
6 |
7 | from iga.ror import name_from_ror
8 |
9 |
10 | # Mocks
11 | # .............................................................................
12 |
13 | here = path.dirname(path.abspath(__file__))
14 | ror_dir = path.join(here, 'data/ror-examples/')
15 |
16 |
17 | def mocked_ror_data(rorid):
18 | log(f'returing mocked ROR data for {rorid}')
19 | ror_filename = rorid + '.json'
20 | with open(path.join(ror_dir, ror_filename), 'r') as f:
21 | return json5.load(f)
22 |
23 |
24 | # Tests
25 | # .............................................................................
26 |
27 | @mock.patch('iga.ror.ror_data', new=mocked_ror_data)
28 | def test_name_from_ror():
29 | assert name_from_ror('https://ror.org/05dxps055') == 'California Institute of Technology'
30 | assert name_from_ror('05dxps055') == 'California Institute of Technology'
31 | assert name_from_ror('https://ror.org/03ybx0x41') == 'University of Basel'
32 |
--------------------------------------------------------------------------------
/tests/test_text_utils.py:
--------------------------------------------------------------------------------
1 | # =============================================================================
2 | # @file test_text_utils.py
3 | # @brief Py.test cases for parts of text_utils.py
4 | # @created 2023-03-02
5 | # @license Please see the file named LICENSE in the project directory
6 | # @website https://github.com/caltechlibrary/iga
7 | # =============================================================================
8 |
9 | from typing import Generator
10 | from iga.text_utils import (
11 | cleaned_text,
12 | without_html,
13 | )
14 |
15 |
16 | def test_cleaned_text():
17 | assert cleaned_text('') == ''
18 | assert cleaned_text('a b') == 'a b'
19 | assert cleaned_text('a\nb') == 'a b'
20 | assert cleaned_text('a\t b') == 'a b'
21 | assert cleaned_text('some text.') == 'some text.'
22 |
23 |
24 | def test_without_html():
25 | assert without_html('') == ''
26 | assert without_html('a') == 'a'
27 | assert without_html('this has no html') == 'this has no html'
28 | assert without_html('foo bar') == 'foo bar'
29 | assert without_html('Sjoberg, D., D., Whiting, K., Curry, M., Lavery, J., A., & Larmarange, J. (2021). Reproducible Summary Tables with the gtsummary Package. The R Journal, 13(1), 570. https://doi.org/10.32614/rj-2021-053\n') == 'Sjoberg, D., D., Whiting, K., Curry, M., Lavery, J., A., & Larmarange, J. (2021). Reproducible Summary Tables with the gtsummary Package. The R Journal, 13(1), 570. https://doi.org/10.32614/rj-2021-053'
30 |
--------------------------------------------------------------------------------