madmpy 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- madmpy-0.1.0/.gitignore +4 -0
- madmpy-0.1.0/.python-version +1 -0
- madmpy-0.1.0/LICENSE +21 -0
- madmpy-0.1.0/PKG-INFO +188 -0
- madmpy-0.1.0/README.md +179 -0
- madmpy-0.1.0/data/ex1-header-fundedProject.json +53 -0
- madmpy-0.1.0/data/ex10-fairsharing.json +64 -0
- madmpy-0.1.0/data/ex2-dataset-planned.json +50 -0
- madmpy-0.1.0/data/ex3-dataset-finished.json +53 -0
- madmpy-0.1.0/data/ex4-dataset-embargo.json +53 -0
- madmpy-0.1.0/data/ex5-dataset-planned-host.json +62 -0
- madmpy-0.1.0/data/ex6-dataset-closed.json +58 -0
- madmpy-0.1.0/data/ex7-dataset-many.json +80 -0
- madmpy-0.1.0/data/ex8-dmp-minimal-content.json +32 -0
- madmpy-0.1.0/data/ex9-dmp-long.json +182 -0
- madmpy-0.1.0/docs/.readthedocs.yaml +13 -0
- madmpy-0.1.0/docs/dmp.md +5 -0
- madmpy-0.1.0/docs/dmp1_0.md +10 -0
- madmpy-0.1.0/docs/index.md +13 -0
- madmpy-0.1.0/docs/quickstart.md +183 -0
- madmpy-0.1.0/docs/release_notes.md +6 -0
- madmpy-0.1.0/docs/stylesheets/custom.css +13 -0
- madmpy-0.1.0/mkdocs.yml +41 -0
- madmpy-0.1.0/pyproject.toml +13 -0
- madmpy-0.1.0/requirements.txt +4 -0
- madmpy-0.1.0/site/404.html +115 -0
- madmpy-0.1.0/site/assets/_mkdocstrings.css +57 -0
- madmpy-0.1.0/site/css/fonts/Roboto-Slab-Bold.woff +0 -0
- madmpy-0.1.0/site/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- madmpy-0.1.0/site/css/fonts/Roboto-Slab-Regular.woff +0 -0
- madmpy-0.1.0/site/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- madmpy-0.1.0/site/css/fonts/fontawesome-webfont.eot +0 -0
- madmpy-0.1.0/site/css/fonts/fontawesome-webfont.svg +2671 -0
- madmpy-0.1.0/site/css/fonts/fontawesome-webfont.ttf +0 -0
- madmpy-0.1.0/site/css/fonts/fontawesome-webfont.woff +0 -0
- madmpy-0.1.0/site/css/fonts/fontawesome-webfont.woff2 +0 -0
- madmpy-0.1.0/site/css/fonts/lato-bold-italic.woff +0 -0
- madmpy-0.1.0/site/css/fonts/lato-bold-italic.woff2 +0 -0
- madmpy-0.1.0/site/css/fonts/lato-bold.woff +0 -0
- madmpy-0.1.0/site/css/fonts/lato-bold.woff2 +0 -0
- madmpy-0.1.0/site/css/fonts/lato-normal-italic.woff +0 -0
- madmpy-0.1.0/site/css/fonts/lato-normal-italic.woff2 +0 -0
- madmpy-0.1.0/site/css/fonts/lato-normal.woff +0 -0
- madmpy-0.1.0/site/css/fonts/lato-normal.woff2 +0 -0
- madmpy-0.1.0/site/css/theme.css +13 -0
- madmpy-0.1.0/site/css/theme_extra.css +197 -0
- madmpy-0.1.0/site/dmp/index.html +4537 -0
- madmpy-0.1.0/site/dmp1_0/index.html +4538 -0
- madmpy-0.1.0/site/img/favicon.ico +0 -0
- madmpy-0.1.0/site/index.html +138 -0
- madmpy-0.1.0/site/js/html5shiv.min.js +4 -0
- madmpy-0.1.0/site/js/jquery-3.6.0.min.js +2 -0
- madmpy-0.1.0/site/js/theme.js +2 -0
- madmpy-0.1.0/site/js/theme_extra.js +8 -0
- madmpy-0.1.0/site/objects.inv +0 -0
- madmpy-0.1.0/site/quickstart/index.html +294 -0
- madmpy-0.1.0/site/release_notes/index.html +136 -0
- madmpy-0.1.0/site/sitemap.xml +3 -0
- madmpy-0.1.0/site/sitemap.xml.gz +0 -0
- madmpy-0.1.0/site/stylesheets/custom.css +13 -0
- madmpy-0.1.0/src/madmpy/__init__.py +80 -0
- madmpy-0.1.0/src/madmpy/country_code.py +255 -0
- madmpy-0.1.0/src/madmpy/currency_code.py +168 -0
- madmpy-0.1.0/src/madmpy/languages.py +191 -0
- madmpy-0.1.0/src/madmpy/py.typed +0 -0
- madmpy-0.1.0/src/madmpy/v1_0/__init__.py +6 -0
- madmpy-0.1.0/src/madmpy/v1_0/dataset.py +25 -0
- madmpy-0.1.0/src/madmpy/v1_0/dmp.py +631 -0
- madmpy-0.1.0/src/madmpy/v1_1/__init__.py +6 -0
- madmpy-0.1.0/src/madmpy/v1_1/dataset.py +25 -0
- madmpy-0.1.0/src/madmpy/v1_1/dmp.py +633 -0
- madmpy-0.1.0/src/tests/test_validation.py +27 -0
- madmpy-0.1.0/src/tests/test_version.py +18 -0
- madmpy-0.1.0/src/tests/usage.py +56 -0
- madmpy-0.1.0/uv.lock +98 -0
madmpy-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
madmpy-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Miguel-Angel Sicilia & Alberto Ballesteros-Rodríguez
|
|
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.
|
madmpy-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: madmpy
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Validating RDA DMP Common Standard
|
|
5
|
+
License-File: LICENSE
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
|
+
Requires-Dist: pydantic>=2.10.4
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
|
|
10
|
+
# madmpy
|
|
11
|
+
|
|
12
|
+
Validating and creating machine Actionable Data Management Plan descriptions in a pythonic way.
|
|
13
|
+
|
|
14
|
+
**madmpy** is a Python library for creating and validating Data Management Plans (DMPs) following the recommendations of the [RDA DMP Common Standard](https://github.com/RDA-DMP-Common/RDA-DMP-Common-Standard).
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
Ensure you have Python **3.11+** installed. You can install `madmpy` using `pip`:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
pip install madmpy
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Quickstart
|
|
25
|
+
Import the library in your Python script or interactive session:
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
import madmpy
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
To load the DMP module:
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
>>> import madmpy
|
|
35
|
+
>>> dmp_module = madmpy.load()
|
|
36
|
+
Loaded madmpy with RDA-DMP specification v1.1
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
To use an older version of the RDA-DMP Common Standard:
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
>>> import madmpy
|
|
43
|
+
>>> VERSION = "1.0"
|
|
44
|
+
>>> madmpy.set_version(VERSION)
|
|
45
|
+
>>> dmp_module = madmpy.load()
|
|
46
|
+
Loaded madmpy with RDA-DMP specification v1.0
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Validate a DMP File
|
|
50
|
+
To validate a DMP file in JSON format:
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
>>> madmpy.validate_DMP("path_DMP_JSON")
|
|
54
|
+
DMP validated!
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### Create a DMP
|
|
59
|
+
You can generate a new DMP that conforms to the RDA-DMP Common Standard using `madmpy`. Below is an example with only the required elements:
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
import datetime
|
|
63
|
+
import madmpy
|
|
64
|
+
|
|
65
|
+
dmp_module = madmpy.load()
|
|
66
|
+
|
|
67
|
+
title = "DMP Title"
|
|
68
|
+
language = dmp_module.LanguageEnum.eng
|
|
69
|
+
dataset = dmp_module.Dataset(
|
|
70
|
+
dataset_id=dmp_module.DatasetIdentifier(
|
|
71
|
+
identifier="https://doi.org/10.25504/FAIRsharing.r3vtvx",
|
|
72
|
+
type=dmp_module.dmp_dataset_id_type.DOI,
|
|
73
|
+
),
|
|
74
|
+
description="Dataset description example",
|
|
75
|
+
personal_data="no",
|
|
76
|
+
sensitive_data="no",
|
|
77
|
+
technical_resource=[dmp_module.TechnicalResource(name="Technical resource")],
|
|
78
|
+
title="Dataset title",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
contact = dmp_module.Contact(
|
|
82
|
+
name="name",
|
|
83
|
+
contact_id=dmp_module.ContactIdentifier(
|
|
84
|
+
identifier="https://orcid.org/0000-0001-2345-6789",
|
|
85
|
+
type=dmp_module.contact_id_type.ORCID,
|
|
86
|
+
),
|
|
87
|
+
mbox="name@email.com",
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
dmp_id = dmp_module.DMPIdentifier(
|
|
91
|
+
identifier="https://doi.org/10.15497/rda00039",
|
|
92
|
+
type=dmp_module.dmp_dataset_id_type.DOI)
|
|
93
|
+
|
|
94
|
+
DMP = dmp_module.DMP(
|
|
95
|
+
dataset=[dataset],
|
|
96
|
+
language=language,
|
|
97
|
+
title=title,
|
|
98
|
+
contact=contact,
|
|
99
|
+
dmp_id=dmp_id,
|
|
100
|
+
ethical_issues_exist=dmp_module.YesNoUnknown.NO,
|
|
101
|
+
created=datetime.datetime.now().replace(microsecond=0),
|
|
102
|
+
modified=datetime.datetime.now().replace(microsecond=0),
|
|
103
|
+
)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Convert to JSON
|
|
107
|
+
To generate a JSON representation of the DMP object:
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
madmpy.export_DMP_json(DMP)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
This will output a structured JSON-formatted representation of the DMP:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"dmp": {
|
|
118
|
+
"title": "DMP Title",
|
|
119
|
+
"contact": {
|
|
120
|
+
"name": "name",
|
|
121
|
+
"contact_id": {
|
|
122
|
+
"identifier": "https://orcid.org/0000-0001-2345-6789",
|
|
123
|
+
"type": "orcid"
|
|
124
|
+
},
|
|
125
|
+
"mbox": "name@email.com"
|
|
126
|
+
},
|
|
127
|
+
"contributor": null,
|
|
128
|
+
"cost": null,
|
|
129
|
+
"created": "2025-02-12T08:15:03",
|
|
130
|
+
"dataset": [
|
|
131
|
+
{
|
|
132
|
+
"data_quality_assurance": null,
|
|
133
|
+
"dataset_id": {
|
|
134
|
+
"identifier": "https://doi.org/10.25504/FAIRsharing.r3vtvx",
|
|
135
|
+
"type": "doi"
|
|
136
|
+
},
|
|
137
|
+
"description": "Dataset description example",
|
|
138
|
+
"distribution": null,
|
|
139
|
+
"issued": null,
|
|
140
|
+
"keyword": null,
|
|
141
|
+
"language": null,
|
|
142
|
+
"metadata": null,
|
|
143
|
+
"personal_data": "no",
|
|
144
|
+
"preservation_statement": null,
|
|
145
|
+
"security_and_privacy": null,
|
|
146
|
+
"sensitive_data": "no",
|
|
147
|
+
"technical_resource": [
|
|
148
|
+
{
|
|
149
|
+
"description": null,
|
|
150
|
+
"name": "Technical resource"
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"title": "Dataset title",
|
|
154
|
+
"type": null
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"description": null,
|
|
158
|
+
"dmp_id": {
|
|
159
|
+
"identifier": "https://n2t.net/ark:/123456/xyz123?info",
|
|
160
|
+
"type": "ark"
|
|
161
|
+
},
|
|
162
|
+
"ethical_issues_description": null,
|
|
163
|
+
"ethical_issues_exist": "no",
|
|
164
|
+
"ethical_issues_report": null,
|
|
165
|
+
"language": "eng",
|
|
166
|
+
"modified": "2025-02-12T08:15:03",
|
|
167
|
+
"project": null
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Contributing
|
|
173
|
+
Contributions are welcome! If you would like to improve `madmpy`, follow these steps:
|
|
174
|
+
|
|
175
|
+
1. **Fork the repository**
|
|
176
|
+
2. **Create a new branch** for your feature or fix
|
|
177
|
+
3. **Commit your changes** and write meaningful commit messages
|
|
178
|
+
4. **Push your branch** to your fork
|
|
179
|
+
5. **Submit a Pull Request (PR)**
|
|
180
|
+
|
|
181
|
+
### Issues & Feature Requests
|
|
182
|
+
- If you find a bug or have a feature request, [open an issue](https://github.com/msicilia/madmpy/issues).
|
|
183
|
+
|
|
184
|
+
## License
|
|
185
|
+
This project is licensed under the **MIT License**.
|
|
186
|
+
|
|
187
|
+
## 📖 Documentation
|
|
188
|
+
For a detailed API reference and more examples, check out the [official documentation](https://madmpy.readthedocs.io/).
|
madmpy-0.1.0/README.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# madmpy
|
|
2
|
+
|
|
3
|
+
Validating and creating machine Actionable Data Management Plan descriptions in a pythonic way.
|
|
4
|
+
|
|
5
|
+
**madmpy** is a Python library for creating and validating Data Management Plans (DMPs) following the recommendations of the [RDA DMP Common Standard](https://github.com/RDA-DMP-Common/RDA-DMP-Common-Standard).
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
Ensure you have Python **3.11+** installed. You can install `madmpy` using `pip`:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
pip install madmpy
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Quickstart
|
|
16
|
+
Import the library in your Python script or interactive session:
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
import madmpy
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
To load the DMP module:
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
>>> import madmpy
|
|
26
|
+
>>> dmp_module = madmpy.load()
|
|
27
|
+
Loaded madmpy with RDA-DMP specification v1.1
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
To use an older version of the RDA-DMP Common Standard:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
>>> import madmpy
|
|
34
|
+
>>> VERSION = "1.0"
|
|
35
|
+
>>> madmpy.set_version(VERSION)
|
|
36
|
+
>>> dmp_module = madmpy.load()
|
|
37
|
+
Loaded madmpy with RDA-DMP specification v1.0
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Validate a DMP File
|
|
41
|
+
To validate a DMP file in JSON format:
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
>>> madmpy.validate_DMP("path_DMP_JSON")
|
|
45
|
+
DMP validated!
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Create a DMP
|
|
50
|
+
You can generate a new DMP that conforms to the RDA-DMP Common Standard using `madmpy`. Below is an example with only the required elements:
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
import datetime
|
|
54
|
+
import madmpy
|
|
55
|
+
|
|
56
|
+
dmp_module = madmpy.load()
|
|
57
|
+
|
|
58
|
+
title = "DMP Title"
|
|
59
|
+
language = dmp_module.LanguageEnum.eng
|
|
60
|
+
dataset = dmp_module.Dataset(
|
|
61
|
+
dataset_id=dmp_module.DatasetIdentifier(
|
|
62
|
+
identifier="https://doi.org/10.25504/FAIRsharing.r3vtvx",
|
|
63
|
+
type=dmp_module.dmp_dataset_id_type.DOI,
|
|
64
|
+
),
|
|
65
|
+
description="Dataset description example",
|
|
66
|
+
personal_data="no",
|
|
67
|
+
sensitive_data="no",
|
|
68
|
+
technical_resource=[dmp_module.TechnicalResource(name="Technical resource")],
|
|
69
|
+
title="Dataset title",
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
contact = dmp_module.Contact(
|
|
73
|
+
name="name",
|
|
74
|
+
contact_id=dmp_module.ContactIdentifier(
|
|
75
|
+
identifier="https://orcid.org/0000-0001-2345-6789",
|
|
76
|
+
type=dmp_module.contact_id_type.ORCID,
|
|
77
|
+
),
|
|
78
|
+
mbox="name@email.com",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
dmp_id = dmp_module.DMPIdentifier(
|
|
82
|
+
identifier="https://doi.org/10.15497/rda00039",
|
|
83
|
+
type=dmp_module.dmp_dataset_id_type.DOI)
|
|
84
|
+
|
|
85
|
+
DMP = dmp_module.DMP(
|
|
86
|
+
dataset=[dataset],
|
|
87
|
+
language=language,
|
|
88
|
+
title=title,
|
|
89
|
+
contact=contact,
|
|
90
|
+
dmp_id=dmp_id,
|
|
91
|
+
ethical_issues_exist=dmp_module.YesNoUnknown.NO,
|
|
92
|
+
created=datetime.datetime.now().replace(microsecond=0),
|
|
93
|
+
modified=datetime.datetime.now().replace(microsecond=0),
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Convert to JSON
|
|
98
|
+
To generate a JSON representation of the DMP object:
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
madmpy.export_DMP_json(DMP)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This will output a structured JSON-formatted representation of the DMP:
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"dmp": {
|
|
109
|
+
"title": "DMP Title",
|
|
110
|
+
"contact": {
|
|
111
|
+
"name": "name",
|
|
112
|
+
"contact_id": {
|
|
113
|
+
"identifier": "https://orcid.org/0000-0001-2345-6789",
|
|
114
|
+
"type": "orcid"
|
|
115
|
+
},
|
|
116
|
+
"mbox": "name@email.com"
|
|
117
|
+
},
|
|
118
|
+
"contributor": null,
|
|
119
|
+
"cost": null,
|
|
120
|
+
"created": "2025-02-12T08:15:03",
|
|
121
|
+
"dataset": [
|
|
122
|
+
{
|
|
123
|
+
"data_quality_assurance": null,
|
|
124
|
+
"dataset_id": {
|
|
125
|
+
"identifier": "https://doi.org/10.25504/FAIRsharing.r3vtvx",
|
|
126
|
+
"type": "doi"
|
|
127
|
+
},
|
|
128
|
+
"description": "Dataset description example",
|
|
129
|
+
"distribution": null,
|
|
130
|
+
"issued": null,
|
|
131
|
+
"keyword": null,
|
|
132
|
+
"language": null,
|
|
133
|
+
"metadata": null,
|
|
134
|
+
"personal_data": "no",
|
|
135
|
+
"preservation_statement": null,
|
|
136
|
+
"security_and_privacy": null,
|
|
137
|
+
"sensitive_data": "no",
|
|
138
|
+
"technical_resource": [
|
|
139
|
+
{
|
|
140
|
+
"description": null,
|
|
141
|
+
"name": "Technical resource"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"title": "Dataset title",
|
|
145
|
+
"type": null
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"description": null,
|
|
149
|
+
"dmp_id": {
|
|
150
|
+
"identifier": "https://n2t.net/ark:/123456/xyz123?info",
|
|
151
|
+
"type": "ark"
|
|
152
|
+
},
|
|
153
|
+
"ethical_issues_description": null,
|
|
154
|
+
"ethical_issues_exist": "no",
|
|
155
|
+
"ethical_issues_report": null,
|
|
156
|
+
"language": "eng",
|
|
157
|
+
"modified": "2025-02-12T08:15:03",
|
|
158
|
+
"project": null
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Contributing
|
|
164
|
+
Contributions are welcome! If you would like to improve `madmpy`, follow these steps:
|
|
165
|
+
|
|
166
|
+
1. **Fork the repository**
|
|
167
|
+
2. **Create a new branch** for your feature or fix
|
|
168
|
+
3. **Commit your changes** and write meaningful commit messages
|
|
169
|
+
4. **Push your branch** to your fork
|
|
170
|
+
5. **Submit a Pull Request (PR)**
|
|
171
|
+
|
|
172
|
+
### Issues & Feature Requests
|
|
173
|
+
- If you find a bug or have a feature request, [open an issue](https://github.com/msicilia/madmpy/issues).
|
|
174
|
+
|
|
175
|
+
## License
|
|
176
|
+
This project is licensed under the **MIT License**.
|
|
177
|
+
|
|
178
|
+
## 📖 Documentation
|
|
179
|
+
For a detailed API reference and more examples, check out the [official documentation](https://madmpy.readthedocs.io/).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dmp": {
|
|
3
|
+
"title": "Funded DMP",
|
|
4
|
+
"description": "Example of a DMP header for a funded project.",
|
|
5
|
+
"created": "2018-07-23T10:10:23.6",
|
|
6
|
+
"modified": "2019-02-06T15:30:42.1",
|
|
7
|
+
"project": [
|
|
8
|
+
{
|
|
9
|
+
"title": "Making maDMPs awesome",
|
|
10
|
+
"start": "2017-01-01",
|
|
11
|
+
"end": "2020-12-31",
|
|
12
|
+
"funding": [
|
|
13
|
+
{
|
|
14
|
+
"funder_id": {
|
|
15
|
+
"identifier": "501100002428",
|
|
16
|
+
"type": "fundref"
|
|
17
|
+
},
|
|
18
|
+
"grant_id": {
|
|
19
|
+
"identifier": "1234567-AT",
|
|
20
|
+
"type": "other"
|
|
21
|
+
},
|
|
22
|
+
"funding_status": "granted"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"contact": {
|
|
28
|
+
"contact_id": {
|
|
29
|
+
"identifier": "http://orcid.org/0000-0000-0000-0000",
|
|
30
|
+
"type": "orcid"
|
|
31
|
+
},
|
|
32
|
+
"mbox": "cc@example.com",
|
|
33
|
+
"name": "Charlie Chaplin"
|
|
34
|
+
},
|
|
35
|
+
"dmp_id": {
|
|
36
|
+
"identifier": "https://doi.org/10.0000/00.0.1234",
|
|
37
|
+
"type": "doi"
|
|
38
|
+
},
|
|
39
|
+
"language": "eng",
|
|
40
|
+
"ethical_issues_exist": "no",
|
|
41
|
+
"dataset": [
|
|
42
|
+
{
|
|
43
|
+
"title": "Source Code",
|
|
44
|
+
"dataset_id": {
|
|
45
|
+
"identifier": "https://hdl.handle.net/11353/10.923628",
|
|
46
|
+
"type": "handle"
|
|
47
|
+
},
|
|
48
|
+
"personal_data": "unknown",
|
|
49
|
+
"sensitive_data": "no"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dmp": {
|
|
3
|
+
"title": "DMP including FAIRsharing DOIs",
|
|
4
|
+
"contact": {
|
|
5
|
+
"contact_id": {
|
|
6
|
+
"identifier": "http://orcid.org/0000-0000-0000-0000",
|
|
7
|
+
"type": "orcid"
|
|
8
|
+
},
|
|
9
|
+
"mbox": "cc@example.com",
|
|
10
|
+
"name": "Charlie Chaplin"
|
|
11
|
+
},
|
|
12
|
+
"created": "2023-03-15T10:10:23.6",
|
|
13
|
+
"dmp_id": {
|
|
14
|
+
"identifier": "https://doi.org/10.0000/00.0.1269",
|
|
15
|
+
"type": "doi"
|
|
16
|
+
},
|
|
17
|
+
"dataset": [
|
|
18
|
+
{
|
|
19
|
+
"title": "Puerto Rico Long-Term Coral Reef Monitoring Program Database Compilation",
|
|
20
|
+
"dataset_id": {
|
|
21
|
+
"identifier": "https://doi.org/10.15468/heuugg",
|
|
22
|
+
"type": "doi"
|
|
23
|
+
},
|
|
24
|
+
"distribution": [
|
|
25
|
+
{
|
|
26
|
+
"title": "Puerto Rico Long-Term Coral Reef Monitoring Program Database Compilation",
|
|
27
|
+
"description": "The Puerto Rico Long-Term Coral Reef Monitoring Program (PRCRMP) database compilation includes raw biological data (by transect) from reef locations around the Puerto Rican archipelago. Substrate cover by sessile-benthic categories and fish, and motile megabenthic invertebrate taxonomic composition and densities have been characterized in these stations, with variable sampling event frequencies between 1999 to 2021. At present, 42 permanent stations are surveyed biannually (21 per year). For the benthic characterization, a set of five 10-meter-long permanent transects are surveyed at each station. Sessile-benthic reef communities are characterized by the continuous intercept chain-link method, following the Caribbean Coastal Marine Productivity (CARICOMP) (1994) protocol. Demersal diurnal non-cryptic reef fish populations and motile megabenthic invertebrates are surveyed by sets of five 10 x 3 meters wide (30 m2) belt-transects centered along the reference line of transects used for sessile-benthic characterizations at each reef station. From 2004-2013, a diver completed an Active Search Census (ASEC) survey for 30 minutes annotating sizes and abundances of fish and macroinvertebrate species of interest. From 2015, the ASEC survey methodology was replaced by 20 x 3 meters (60 m2) band transects to identify commercially and ecologically important fish and megabenthic invertebrate species. Upon completion of the 10 meters belt-transect survey, the diver swims along the same depth and physiographic reef zone for an extra 10 meters to complete the 60 m2 transect. For each fish individual within the ASEC survey (2004-2013) and 60m2 band transects (2015-2021), a visual fork length (FL) estimate in centimeters is recorded. Fish length estimations are provided by the median of 5cm interval size classes. The cephalothorax length (measurement from the tip of the rostrum to end of the thorax), also known as carapace length (CL) in centimeters is used to report the size of lobsters (Panulirus spp., Scyllarides spp.) within belt-transects. Queen conch (Lobatus gigas) length is reported as the total (diagonal) shell length in centimeters. With the length-weight relationship information available in FishBase.org, biomass estimates are calculated for a subset of commercially and ecologically important fish species. The PRCRMP database was made possible with support from the National Oceanic and Atmospheric Administrations Coral Reef Conservation Program.",
|
|
28
|
+
"format": [
|
|
29
|
+
"text/xml"
|
|
30
|
+
],
|
|
31
|
+
"byte_size": 12288,
|
|
32
|
+
"data_access": "open",
|
|
33
|
+
"license": [
|
|
34
|
+
{
|
|
35
|
+
"license_ref": "http://creativecommons.org/publicdomain/zero/1.0/legalcode",
|
|
36
|
+
"start_date": "2022-02-13"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"metadata": [
|
|
40
|
+
{
|
|
41
|
+
"description": "The Ecological Metadata Language (EML) metadata standard was originally developed for the earth, environmental and ecological sciences. It is based on prior work done by the Ecological Society of America and associated efforts. It has been developed to document any research data, and as such can be used outside of these original subject areas. EML is implemented as a series of XML document types that can by used in a modular and extensible manner to document ecological data. Each EML module is designed to describe one logical part of the total metadata that should be included with any ecological dataset.",
|
|
42
|
+
"language": "eng",
|
|
43
|
+
"metadata_standard_id": {
|
|
44
|
+
"identifier": "https://doi.org/10.25504/FAIRsharing.r3vtvx",
|
|
45
|
+
"type": "doi"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"host": {
|
|
50
|
+
"title": "GBIF.org",
|
|
51
|
+
"url": "https://doi.org/10.25504/FAIRsharing.zv11j3",
|
|
52
|
+
"description": "GBIF—the Global Biodiversity Information Facility—is an international network and data infrastructure funded by the world's governments and aimed at providing anyone, anywhere, open access to data about all types of life on Earth. Strictly speaking, GBIF is not a data repository. Rather, GBIF indexes thousands of datasets through a distributed infrastructure involving more than 100 formal participants that supports hundreds of data-publishing institutions worldwide. GBIF.org makes the FAIR and open data discoverable and citable, assigning each download a DOI and storing it for an extended period of time. More than three peer-reviewed research articles make use of data from the GBIF network every day, in studies spanning the impacts of climate change, the spread of pests and diseases, priority areas for conservation and food security. To share data with GBIF, follow this quick guide: http://www.gbif.org/publishing-data/quick-guide. To deposit or host data, we suggest using one of the trusted data hosting centres (DHC) listed in FAIRsharing.org that uses GBIF's IPT (Integrated Publishing Toolkit) software. The DHC provides data publishers with a hosted IPT account enabling them to manage and publish datasets through GBIF.org."
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"personal_data": "no",
|
|
57
|
+
"sensitive_data": "no"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"ethical_issues_exist": "no",
|
|
61
|
+
"language": "eng",
|
|
62
|
+
"modified": "2019-02-06T15:30:42.1"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dmp": {
|
|
3
|
+
"title": "DMP in a planning phase",
|
|
4
|
+
"description": "Example of a DMP describing a project in which source code will be created and put on GitHub. The DMP is created on 2019-02-22. The code is planned to be released on 2019-06-30 using CC-BY license.",
|
|
5
|
+
"created": "2019-02-22T13:20:15.5",
|
|
6
|
+
"modified": "2019-02-22T13:20:15.5",
|
|
7
|
+
"project": [],
|
|
8
|
+
"contact": {
|
|
9
|
+
"mbox": "TMiksa@sba-research.org",
|
|
10
|
+
"name": "Tomasz Miksa",
|
|
11
|
+
"contact_id": {
|
|
12
|
+
"identifier": "https://orcid.org/0000-0000-0000-0000",
|
|
13
|
+
"type": "orcid"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"language": "eng",
|
|
17
|
+
"ethical_issues_exist": "no",
|
|
18
|
+
"dmp_id": {
|
|
19
|
+
"identifier": "https://doi.org/10.0000/00.0.1234",
|
|
20
|
+
"type": "doi"
|
|
21
|
+
},
|
|
22
|
+
"dataset": [
|
|
23
|
+
{
|
|
24
|
+
"title": "Source Code",
|
|
25
|
+
"description": "Proof of concept implementation",
|
|
26
|
+
"type": "software",
|
|
27
|
+
"issued": "2019-06-30",
|
|
28
|
+
"personal_data": "unknown",
|
|
29
|
+
"sensitive_data": "no",
|
|
30
|
+
"distribution": [
|
|
31
|
+
{
|
|
32
|
+
"title": "Java code",
|
|
33
|
+
"access_url": "http://github.com/some-repo...",
|
|
34
|
+
"data_access": "open",
|
|
35
|
+
"license": [
|
|
36
|
+
{
|
|
37
|
+
"license_ref": "https://creativecommons.org/licenses/by/4.0/",
|
|
38
|
+
"start_date": "2019-06-30"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"dataset_id": {
|
|
44
|
+
"identifier": "https://hdl.handle.net/11353/10.923628",
|
|
45
|
+
"type": "handle"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dmp": {
|
|
3
|
+
"title": "DMP for a finished project",
|
|
4
|
+
"description": "Project has ended. Data is published.",
|
|
5
|
+
"created": "2018-07-23T10:10:23.6",
|
|
6
|
+
"modified": "2019-02-22T15:10:56.9",
|
|
7
|
+
"project": [],
|
|
8
|
+
"contact": {
|
|
9
|
+
"mbox": "TMiksa@sba-research.org",
|
|
10
|
+
"name": "Tomasz Miksa",
|
|
11
|
+
"contact_id": {
|
|
12
|
+
"identifier": "https://orcid.org/0000-0000-0000-0000",
|
|
13
|
+
"type": "orcid"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"language": "eng",
|
|
17
|
+
"ethical_issues_exist": "no",
|
|
18
|
+
"dmp_id": {
|
|
19
|
+
"identifier": "https://doi.org/10.0000/00.0.1234",
|
|
20
|
+
"type": "doi"
|
|
21
|
+
},
|
|
22
|
+
"dataset": [
|
|
23
|
+
{
|
|
24
|
+
"title": "Source Code",
|
|
25
|
+
"description": "Proof of concept implementation",
|
|
26
|
+
"type": "software",
|
|
27
|
+
"issued": "2019-01-30",
|
|
28
|
+
"dataset_id": {
|
|
29
|
+
"identifier": "10.5281/zenodo.1200361",
|
|
30
|
+
"type": "doi"
|
|
31
|
+
},
|
|
32
|
+
"personal_data": "no",
|
|
33
|
+
"sensitive_data": "no",
|
|
34
|
+
"data_quality_assurance": ["The code has been reviewed by... and follows naming convention..."],
|
|
35
|
+
"distribution": [
|
|
36
|
+
{
|
|
37
|
+
"title": "Java code",
|
|
38
|
+
"description": "Final realase implemented using... to...",
|
|
39
|
+
"access_url": "http://github.com/some-repo...",
|
|
40
|
+
"data_access": "open",
|
|
41
|
+
"license": [
|
|
42
|
+
{
|
|
43
|
+
"license_ref": "https://creativecommons.org/licenses/by/4.0/",
|
|
44
|
+
"start_date": "2019-01-30"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"available_until": "2029-01-30"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dmp": {
|
|
3
|
+
"title": "Embargo DMP",
|
|
4
|
+
"description": "Data will be shared after two years (embargo)",
|
|
5
|
+
"created": "2018-07-23T10:10:23.6",
|
|
6
|
+
"modified": "2019-02-22T15:10:56.9",
|
|
7
|
+
"project": [],
|
|
8
|
+
"contact": {
|
|
9
|
+
"mbox": "TMiksa@sba-research.org",
|
|
10
|
+
"name": "Tomasz Miksa",
|
|
11
|
+
"contact_id": {
|
|
12
|
+
"identifier": "https://orcid.org/0000-0000-0000-0000",
|
|
13
|
+
"type": "orcid"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"language": "eng",
|
|
17
|
+
"ethical_issues_exist": "no",
|
|
18
|
+
"dmp_id": {
|
|
19
|
+
"identifier": "https://doi.org/10.0000/00.0.1234",
|
|
20
|
+
"type": "doi"
|
|
21
|
+
},
|
|
22
|
+
"dataset": [
|
|
23
|
+
{
|
|
24
|
+
"title": "Cool data",
|
|
25
|
+
"description": "Data which shows...",
|
|
26
|
+
"dataset_id": {
|
|
27
|
+
"identifier": "10.5281/zenodo.1200361",
|
|
28
|
+
"type": "doi"
|
|
29
|
+
},
|
|
30
|
+
"type": "document",
|
|
31
|
+
"issued": "2019-06-30",
|
|
32
|
+
"personal_data": "no",
|
|
33
|
+
"sensitive_data": "unknown",
|
|
34
|
+
"distribution": [
|
|
35
|
+
{
|
|
36
|
+
"title": "Raw data",
|
|
37
|
+
"description": "CSV file showing... Embargoed until licence->start_date below",
|
|
38
|
+
"format": ["text/csv"],
|
|
39
|
+
"byte_size": 100000,
|
|
40
|
+
"data_access": "open",
|
|
41
|
+
"license": [
|
|
42
|
+
{
|
|
43
|
+
"license_ref": "https://creativecommons.org/licenses/by/4.0/",
|
|
44
|
+
"start_date": "2021-06-30"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"available_until": "2029-01-30"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|