Metadata-Version: 2.3
Name: rsfc
Version: 0.0.3
Summary: EVERSE Research Software Fairness Checks
License: MIT
Author: Andres Montero
Author-email: andres.montero.martin@upm.es
Requires-Python: >=3.10,<=3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: anyascii (==0.3.2)
Requires-Dist: attrs (==25.3.0)
Requires-Dist: beautifulsoup4 (==4.13.4)
Requires-Dist: bibtexparser (==1.4.3)
Requires-Dist: bs4 (==0.0.1)
Requires-Dist: build (==1.2.2.post1)
Requires-Dist: certifi (==2025.6.15)
Requires-Dist: chardet (==5.2.0)
Requires-Dist: charset-normalizer (==3.4.2)
Requires-Dist: click (==8.2.1)
Requires-Dist: click-option-group (==0.5.7)
Requires-Dist: contourpy (==1.3.2)
Requires-Dist: contractions (==0.1.73)
Requires-Dist: cycler (==0.12.1)
Requires-Dist: duckdb (==1.3.1)
Requires-Dist: elementpath (==4.8.0)
Requires-Dist: falcon (==3.1.3)
Requires-Dist: fastjsonschema (==2.21.1)
Requires-Dist: fonttools (==4.58.4)
Requires-Dist: idna (==3.10)
Requires-Dist: imbalanced-learn (==0.11.0)
Requires-Dist: inflect (==7.5.0)
Requires-Dist: iniconfig (==2.1.0)
Requires-Dist: jinja2 (==3.1.6)
Requires-Dist: joblib (==1.5.1)
Requires-Dist: jsonpath-python (==1.0.6)
Requires-Dist: jsonschema (==4.24.0)
Requires-Dist: jsonschema-specifications (==2025.4.1)
Requires-Dist: jupyter-core (==5.8.1)
Requires-Dist: kiwisolver (==1.4.8)
Requires-Dist: lxml (==5.1.0)
Requires-Dist: markdown (==3.8.1)
Requires-Dist: markupsafe (==3.0.2)
Requires-Dist: matplotlib (==3.10.3)
Requires-Dist: more-itertools (==10.7.0)
Requires-Dist: morph-kgc (==2.8.1)
Requires-Dist: nbformat (==5.10.4)
Requires-Dist: nltk (==3.9.1)
Requires-Dist: numpy (==1.26.4)
Requires-Dist: packaging (==25.0)
Requires-Dist: pandas (==2.3.0)
Requires-Dist: pillow (==11.2.1)
Requires-Dist: platformdirs (==4.3.8)
Requires-Dist: pluggy (==1.6.0)
Requires-Dist: pyahocorasick (==2.2.0)
Requires-Dist: pyoxigraph (==0.3.22)
Requires-Dist: pyparsing (==3.2.3)
Requires-Dist: pyproject-hooks (==1.2.0)
Requires-Dist: pystache (==0.6.8)
Requires-Dist: pytest (==7.4.4)
Requires-Dist: python-dateutil (==2.9.0.post0)
Requires-Dist: pytz (==2025.2)
Requires-Dist: pyyaml (==6.0.2)
Requires-Dist: rdflib (==7.1.4)
Requires-Dist: rdflib-jsonld (==0.6.2)
Requires-Dist: referencing (==0.36.2)
Requires-Dist: regex (==2024.11.6)
Requires-Dist: requests (==2.32.4)
Requires-Dist: rpds-py (==0.25.1)
Requires-Dist: ruamel-yaml (==0.18.14)
Requires-Dist: ruamel-yaml-clib (==0.2.12)
Requires-Dist: scikit-learn (==1.3.2)
Requires-Dist: scipy (==1.15.3)
Requires-Dist: six (==1.17.0)
Requires-Dist: somef (==0.9.11)
Requires-Dist: soupsieve (==2.7)
Requires-Dist: tabulate (==0.9.0)
Requires-Dist: textblob (==0.17.1)
Requires-Dist: textsearch (==0.0.24)
Requires-Dist: threadpoolctl (==3.6.0)
Requires-Dist: toml (==0.10.2)
Requires-Dist: tomli (==2.2.1)
Requires-Dist: tqdm (==4.67.1)
Requires-Dist: traitlets (==5.14.3)
Requires-Dist: typeguard (==4.4.4)
Requires-Dist: typing-extensions (==4.14.0)
Requires-Dist: tzdata (==2025.2)
Requires-Dist: urllib3 (==2.5.0)
Requires-Dist: validators (==0.22.0)
Requires-Dist: xgboost (==2.1.4)
Project-URL: Homepage, https://github.com/oeg-upm/rsfc
Description-Content-Type: text/markdown

[![DOI](https://zenodo.org/badge/993095977.svg)](https://doi.org/10.5281/zenodo.16531481)


# Research Software Fairness Checks (RSFC)

A command line interface to automatically evaluate the quality of a Github or Gitlab repository.

**Authors**: Daniel Garijo, Andrés Montero


## Features

Given a repository URL, RSFC will perform a series of checks based on a list of research software quality indicators (RSQI). The RSQIs currently covered by the package are:

- software_has_license
- software_has_citation
- has_releases
- repository_workflows
- version_control_use
- requirements_specified
- software_documentation
- persistent_and_unique_identifier
- descriptive_metadata
- software_tests
- archived_in_software_heritage
- versioning_standards_use

For more information about these RSQIs, you can check https://github.com/EVERSE-ResearchSoftware/indicators. We have plans to implement all of the RSQIs available in that repository.


## Requirements

Python 3.10.8 or higher

Dependencies are available in the requirements.txt or pyproject.toml file located in the root of the repository

## Install from PyPI

Just run in your terminal the following command:

```
pip install rsfc
```

## Install from Github with Poetry

To install the package, first clone the repository in your machine.
This project uses Poetry for dependency and environment management.

```
git clone https://github.com/oeg-upm/rsfc.git
```

Go to the project's root directory

```
cd rsfc
```

Install Poetry (if you haven’t already)

```
curl -sSL https://install.python-poetry.org | python3 -
```

Make sure Poetry is available in your PATH

```
poetry --version
```

Create the virtual environment and install dependencies

```
poetry install
```

Activate the virtual environment (Optional)

```
source $(poetry env info --path)/bin/activate
```

Your terminal prompt should now show something like:

```
(rsfc-py3.11) your-user@your-machine rsfc %
```

With virtual environment activated you can tried like this:

```
rsfc --help
```

Without poetry virtual environment activated you need to use the poetry run:

```
poetry run rsfc --help
```

## Docker installation

If preferred, RSFC can be executed using docker.

Once you have cloned the repository, go to the project's root directory and run the following command to build the image:

```
docker build -t rsfc-docker .
```

After that, it is necessary to create the directory in which the output assessment will be saved. You can do it by running the following command:

```
mkdir ./outputs
```

Finally, run the following command to run the container:

```
docker run --rm -v $(pwd)/outputs:/rsfc/outputs rsfc-docker <repo_url>
```

where repo_url is the url of the repository to be analyzed, which is strictly needed.

## Usage

After installation, you can use the package by running if you activated the poetry env

```
rsfc <repo_url>
```

or like this without the poetry env

```
poetry run rsfc <repo_url>
```

