Generation
Introduction
The generate module provides a way of generating metadata files that follow the FAIR guidelines adopted by the AI-READI project.
Warning
The generate module is still under development.
Note
The generate module of this package uses the validate module internally to verify that the input data follows the required schema.
Methods
The following methods are available in the generate module. Each method is described in detail below.
Generate Dataset Description
You can call the generate_dataset_description method to generate a dataset_description file.
Parameters
data
Provide the data required for your dataset_description file in this paramater.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| Object | {} | yes | Data object following the required schemas |
More information about the required data can be found in the dataset_description schema.
file_path
Provide the path to the file where you want to save the generated dataset_description file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
file_type
Provide the file type of the file where you want to save the generated dataset_description file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | json, xml, xlsx, csv |
Returns
| Type | Description |
|---|---|
| String | Returns the path to the generated dataset_description file as a string. |
How to use
from pyfairdatatools import generate
data = {
"title": "My Dataset",
"identifier": "10.5281/zenodo.1234567",
"identifierType": "DOI"
}
output = generate.generate_dataset_description(data = data, file_path = "dataset_description.json", file_type = "json")
print(output) # dataset_description.json
Generate Study Description
You can call the generate_study_description method to generate a study_description file.
Generate Study Description from Clinical Trial integration
You can call the generate_study_description_from_clinical_trials method to generate an initial study_description file.
Parameters
data
Provide the data required for your study_description file in this paramater.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| Object | {} | yes | Data object following the required schemas |
More information about the required data can be found in the study_description schema.
file_path
Provide the path to the file where you want to save the generated study_description file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
file_type
Provide the file type of the file where you want to save the generated study_description file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | json, xml, xlsx, csv |
Returns
| Type | Description |
|---|---|
| String | Returns the path to the generated study_description file as a string. |
How to use
from pyfairdatatools import generate
data = {
"title": "My Dataset",
"identifier": "10.5281/zenodo.1234567",
"identifierType": "DOI"
}
output = generate.generate_study_description(data = data, file_path = "study_description.json", file_type = "json")
print(output) # study_description.json
Generate Readme
You can call the generate_readme method to generate a readme file.
Parameters
data
Provide the data required for your readme file in this paramater.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| Object | {} | yes | Data object following the required schemas |
More information about the required data can be found in the readme schema.
file_path
Provide the path to the file where you want to save the generated readme file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
file_type
Provide the file type of the file where you want to save the generated readme file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | md, txt |
Returns
| Type | Description |
|---|---|
| String | Returns the path to the generated readme file as a string. |
How to use
from pyfairdatatools import generate
data = {
"Title": "My Dataset",
"Identifier": "10.5281/zenodo.1234567",
"Version": "1.0.0",
}
output = generate.generate_readme(data = data, file_path = "readme.md", file_type = "md")
print(output) # readme.md
Generate Changelog
You can call the generate_changelog method to generate a changelog file.
Parameters
data
Provide the content of the changelog file in this paramater.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
file_path
Provide the path to the file where you want to save the generated changelog file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
file_type
Provide the file type of the file where you want to save the generated changelog file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | md, txt |
Returns
| Type | Description |
|---|---|
| String | Returns the path to the generated changelog file as a string. |
How to use
from pyfairdatatools import generate
data = """
# Changelog
## 1.0.0
- Initial release
"""
output = generate.generate_changelog(data = data, file_path = "changelog.md", file_type = "md")
print(output) # changelog.md
Generate License
You can call the generate_license method to generate a license file.
Parameters
identifier
Provide the identifier of the license you want to use in this paramater.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | "" | yes | SPDX license identifier |
For a list of all SPDX license identifiers, see here.
Warning
If you provide an invalid identifier, the method will raise an error. If you want to use a custom license, use the data parameter instead and provide the content of the license file. Leave this parameter empty if you are using custom license text.
data
Provide the content of the license file in this paramater.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
Warning
Use this parameter if you want to use a custom license. Leave this parameter empty if you are using a SPDX license identifier. If you provide a SPDX license identifier, the method will prioritize this parameter over the identifier parameter.
file_path
Provide the path to the file where you want to save the generated license file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | Any string |
file_type
Provide the file type of the file where you want to save the generated license file.
| Type | Default value | Required | Accepted values |
|---|---|---|---|
| String | None | yes | md, txt |
Returns
| Type | Description |
|---|---|
| String | Returns the path to the generated license file as a string. |
How to use
from pyfairdatatools import generate
data = """
MIT License
SPDX short identifier: MIT
Further resources on the MIT License
- [Text](https://spdx.org/licenses/MIT.html)
- [JSON](https://spdx.org/licenses/MIT.json)
- [RDF](https://spdx.org/licenses/MIT.rdf)
- [HTML](https://spdx.org/licenses/MIT.html)
"""
output = generate.generate_license(identifier = "MIT", data = data, file_path = "LICENSE.md", file_type = "md")
print(output) # LICENSE.md
To create a license file using a SPDX license identifier:
from pyfairdatatools import generate
identifier = "MIT"
output = generate.generate_license(identifier = identifier, file_path = "LICENSE.md", file_type = "md")
print(output) # LICENSE.md