fairly
                                
                                 fairly copied to clipboard
                                
                                    fairly copied to clipboard
                            
                            
                            
                        A package to create, publish, and clone research datasets
.. list-table:: :widths: 25 25 :header-rows: 1
- 
- fair-software.nl <https://fair-software.nl>_ recommendations
- Badges
 
- 
- \1. Code repository
- |GitHub Badge|
 
- 
- \2. License
- |License Badge|
 
- 
- \3. Community Registry
- |PyPI Badge|
 
- 
- \4. Enable Citation
- |Zenodo Badge|
 
- 
- Other best practices
 
- 
- Continuous integration
- |Python Build| |Python Publish|
 
- 
- Documentation
- |Documentation Status|
 
- 
- Anaconda package
- |Anaconda| |Anaconda Downloads|
 
.. |Anaconda| image:: https://anaconda.org/conda-forge/fairly/badges/version.svg
:target: https://anaconda.org/conda-forge/fairly
:alt: Anaconda Package
.. |Anaconda Downloads| image:: https://anaconda.org/conda-forge/fairly/badges/downloads.svg
:target: https://anaconda.org/conda-forge/fairly
:alt: Anaconda Downloads
.. |GitHub Badge| image:: https://img.shields.io/github/v/release/ITC-CRIB/fairly :target: https://github.com/ITC-CRIB/fairly :alt: GitHub Badge
.. |License Badge| image:: https://img.shields.io/badge/License-MIT-yellow.svg :target: https://opensource.org/licenses/MIT :alt: License Badge
.. |PyPI Badge| image:: https://img.shields.io/pypi/v/fairly?colorB=blue :target: https://pypi.org/project/fairly/ :alt: PyPI Badge
.. |Zenodo Badge| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.7759648.svg :target: https://doi.org/10.5281/zenodo.7759648 :alt: Zenodo Badge
.. |Python Build| image:: https://github.com/ITC-CRIB/fairly/actions/workflows/test_workflow.yaml/badge.svg :target: https://github.com/ITC-CRIB/fairly/actions/workflows/test_workflow.yaml :alt: Python Build
.. |Python Publish| image:: https://github.com/ITC-CRIB/fairly/actions/workflows/publish.yaml/badge.svg :target: https://github.com/ITC-CRIB/fairly/actions/workflows/publish.yaml :alt: Python Publish
.. |Documentation Status| image:: https://readthedocs.org/projects/fairly/badge/?version=latest :target: https://fairly.readthedocs.io/en/latest/ :alt: Documentation Status
fairly
A package to create, publish and clone research datasets.
|License: MIT|
Installation
fairly requires Python 3.8 or later, and ruamel.yaml version 0.17.26 or later.  It can be installed directly
from PYPI or Conda-Forge.
.. code:: shell
Using pip
pip install fairly
.. code:: shell
using anaconda or miniconda
conda install conda-forge::fairly
Installing from source
1. Clone or download the `source
   code <https://github.com/ITC-CRIB/fairly>`__:
   .. code:: shell
      git clone https://github.com/ITC-CRIB/fairly.git
2. Go to the root directory:
   .. code:: shell
      cd fairly/
3. Compile and install using pip:
   .. code:: shell
      pip install .
Usage
-----
Basic example to create a local research dataset and deposit it to a
repository:
.. code:: python
   import fairly
   # Initialize a local dataset
   dataset = fairly.init_dataset('/path/dataset')
   # Set metadata
   dataset.metadata['license'] = 'MIT'
   dataset.set_metadata(
       title='My dataset',
       keywords=['FAIR', 'research', 'data'],
       authors=[
           '0000-0002-0156-185X',
           {'name': 'John', 'surname': 'Doe'}
       ]
   )
   # Add data files
   dataset.includes.extend([
       'README.txt',
       '*.csv',
       'train/*.jpg'
   ])
   # Save dataset
   dataset.save()
   # Upload to a data repository
   remote_dataset = dataset.upload('zenodo')
Basic example to access a remote dataset and store it locally:
.. code:: python
   import fairly
   # Open a remote dataset
   dataset = fairly.dataset('doi:10.4121/21588096.v1')
   # Get dataset information
   dataset.id
   >>> {'id': '21588096', 'version': '1'}
   dataset.url
   >>> 'https://data.4tu.nl/articles/dataset/.../21588096/1'
   dataset.size
   >>> 33339
   len(dataset.files)
   >>> 6
   dataset.metadata
   >>> Metadata({'keywords': ['Earthquakes', 'precursor', ...], ...})
   # Update metadata
   dataset.metadata['keywords'] = ['Landslides', 'precursor']
   dataset.save_metadata()
   # Store dataset to a local directory (i.e. clone dataset)
   local_dataset = dataset.store('/path/dataset')
Currently, the package supports the following research data management
platforms:
-  `Invenio <https://inveniosoftware.org/>`__
-  `Figshare <https://figshare.com/>`__
-  `Djehuty <https://github.com/4TUResearchData/djehuty/>`__
   (experimental)
All research data repositories based on the listed platforms are
supported.
For more details and examples, consult the `package
documentation <https://fairly.readthedocs.io/en/latest/>`__.
Testing
-------
Unit tests can be run by using ``pytest`` command in the root directory.
Contributions
-------------
Read the `guidelines <CONTRIBUTING.md>`__ to know how you can be part of
this open source project.
JupyterLab Extension
--------------------
An extension for JupyerLab is being developed in a `different
repository. <https://github.com/ITC-CRIB/jupyter-fairly>`__
Citation
--------
Please cite this software using as follows:
*Girgin, S., Garcia Alvarez, M., & Urra Llanusa, J., fairly: a package
to create, publish and clone research datasets [Computer software]*
Acknowledgements
----------------
This research is funded by the `Dutch Research Council (NWO) Open
Science
Fund <https://www.nwo.nl/en/researchprogrammes/open-science/open-science-fund/>`__,
File No. 203.001.114.
Project members:
-  `Center of Expertise in Big Geodata Science, University of Twente,
   Faculty ITC <https://itc.nl/big-geodata/>`__
-  `Digital Competence Centre, TU Delft <https://dcc.tudelft.nl/>`__
-  `4TU.ResearchData <https://data.4tu.nl/>`__
.. |License: MIT| image:: https://img.shields.io/badge/License-MIT-yellow.svg
   :target: https://opensource.org/licenses/MIT