Scikit-longitudinal 0.0.2__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.
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Provost Simon
|
|
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.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: Scikit-longitudinal
|
|
3
|
+
Version: 0.0.2
|
|
4
|
+
Summary: Scikit-longitudinal, an open-source Python lib for longitudinal data analysis, builds on Scikit-learn's foundation. It offers specialized tools to tackle challenges of repeated measures data, ideal for researchers, data scientists, & analysts.
|
|
5
|
+
Author-Email: Provost Simon <simon.gilbert.provost@gmail.com>, Alex Freitas <a.a.freitas@kent.ac.uk>
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: <3.10,>=3.9
|
|
8
|
+
Requires-Dist: scipy>=1.5.0
|
|
9
|
+
Requires-Dist: pandas<2.0.0,>=1.5.3
|
|
10
|
+
Requires-Dist: matplotlib<4.0.0,>=3.7.0
|
|
11
|
+
Requires-Dist: jupyter<2.0.0,>=1.0.0
|
|
12
|
+
Requires-Dist: overrides<8.0.0,>=7.3.1
|
|
13
|
+
Requires-Dist: ray<3.0.0,>=2.3.1
|
|
14
|
+
Requires-Dist: statsmodels<1.0.0,>=0.14.0
|
|
15
|
+
Requires-Dist: numpy==1.23.3
|
|
16
|
+
Requires-Dist: graphviz<1.0.0,>=0.20.1
|
|
17
|
+
Requires-Dist: arff<1.0,>=0.9
|
|
18
|
+
Requires-Dist: threadpoolctl<4.0.0,>=3.1.0
|
|
19
|
+
Requires-Dist: configspace<1.0.0,>=0.7.1
|
|
20
|
+
Requires-Dist: stopit>=1.1.2
|
|
21
|
+
Requires-Dist: rich>=13.6.0
|
|
22
|
+
Requires-Dist: joblib>=0.11
|
|
23
|
+
Requires-Dist: deep-forest>=0.1.7
|
|
24
|
+
Requires-Dist: starboost==0.0.2
|
|
25
|
+
Requires-Dist: scikit-lexicographical-trees>=0.0.2
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
<!--suppress HtmlDeprecatedAttribute -->
|
|
29
|
+
<div align="center">
|
|
30
|
+
<p align="center">
|
|
31
|
+
<h1 align="center">
|
|
32
|
+
<br>
|
|
33
|
+
<a href="./logo.png"><img src="./logo.png" alt="Scikit-longitudinal" width="200"></a>
|
|
34
|
+
<br>
|
|
35
|
+
Scikit-longitudinal
|
|
36
|
+
<br>
|
|
37
|
+
</h1>
|
|
38
|
+
<h4 align="center">A specialised Python library for longitudinal data analysis built on Scikit-learn</h4>
|
|
39
|
+
<table align="center">
|
|
40
|
+
<tr>
|
|
41
|
+
<td align="center">
|
|
42
|
+
<h3>⚙️ Project Status</h3>
|
|
43
|
+
</td>
|
|
44
|
+
<td align="center">
|
|
45
|
+
<h3>☎️ Contacts</h3>
|
|
46
|
+
</td>
|
|
47
|
+
</tr>
|
|
48
|
+
<tr>
|
|
49
|
+
<td valign="top">
|
|
50
|
+
<!-- Python-related badges table -->
|
|
51
|
+
<table>
|
|
52
|
+
<tr>
|
|
53
|
+
<table>
|
|
54
|
+
<tr>
|
|
55
|
+
<td>
|
|
56
|
+
<a href="https://pdm.fming.dev">
|
|
57
|
+
<img alt="pdm" src="https://img.shields.io/badge/pdm-managed-blue?style=for-the-badge&logo=python">
|
|
58
|
+
</a>
|
|
59
|
+
</td>
|
|
60
|
+
<td>
|
|
61
|
+
<a href="https://pytest.org/">
|
|
62
|
+
<img alt="pytest" src="https://img.shields.io/badge/pytest-passing-green?style=for-the-badge&logo=pytest">
|
|
63
|
+
</a><br />
|
|
64
|
+
<a href="https://codecov.io/gh/Scikit-Longitudinal/Scikit-Longitudinal">
|
|
65
|
+
<img alt="Codecov" src="https://img.shields.io/badge/coverage-88%25-brightgreen.svg?style=for-the-badge&logo=appveyor">
|
|
66
|
+
</a>
|
|
67
|
+
</td>
|
|
68
|
+
</tr>
|
|
69
|
+
<tr>
|
|
70
|
+
<td>
|
|
71
|
+
<a href="https://flake8.pycqa.org/en/latest/">
|
|
72
|
+
<img alt="flake8" src="https://img.shields.io/badge/flake8-checked-blue?style=for-the-badge&logo=python">
|
|
73
|
+
</a><br />
|
|
74
|
+
<a href="https://www.pylint.org/">
|
|
75
|
+
<img alt="pylint" src="https://img.shields.io/badge/pylint-checked-blue?style=for-the-badge&logo=python">
|
|
76
|
+
</a><br />
|
|
77
|
+
<a href="https://pre-commit.com/">
|
|
78
|
+
<img alt="pre-commit" src="https://img.shields.io/badge/pre--commit-checked-blue?style=for-the-badge&logo=python">
|
|
79
|
+
</a>
|
|
80
|
+
</td>
|
|
81
|
+
<td>
|
|
82
|
+
<a href="https://github.com/PyCQA/isort">
|
|
83
|
+
<img alt="isort" src="https://img.shields.io/badge/isort-compliant-green?style=for-the-badge&logo=python">
|
|
84
|
+
</a><br />
|
|
85
|
+
<a href="https://github.com/psf/black">
|
|
86
|
+
<img alt="black" src="https://img.shields.io/badge/black-formatted-black?style=for-the-badge&logo=python">
|
|
87
|
+
</a><br />
|
|
88
|
+
<a href="https://github.com/hhatto/autopep8">
|
|
89
|
+
<img alt="autopep8" src="https://img.shields.io/badge/autopep8-compliant-green?style=for-the-badge&logo=python">
|
|
90
|
+
</a>
|
|
91
|
+
</td>
|
|
92
|
+
</tr>
|
|
93
|
+
</table>
|
|
94
|
+
<td valign="center">
|
|
95
|
+
<table>
|
|
96
|
+
<tr>
|
|
97
|
+
<td>
|
|
98
|
+
<a href="mailto:s.g.provost@kent.ac.uk">
|
|
99
|
+
<img alt="Microsoft Outlook" src="https://upload.wikimedia.org/wikipedia/commons/d/df/Microsoft_Office_Outlook_%282018%E2%80%93present%29.svg" width="40" height="40">
|
|
100
|
+
</a><br />
|
|
101
|
+
<a href="https://linkedin.com/in/simonprovostdev/">
|
|
102
|
+
<img alt="LinkedIn" src="https://upload.wikimedia.org/wikipedia/commons/c/ca/LinkedIn_logo_initials.png" width="40" height="40">
|
|
103
|
+
</a><br />
|
|
104
|
+
<a href="https://stackoverflow.com/users/9814037/simon-provost">
|
|
105
|
+
<img alt="Stack Overflow" src="https://upload.wikimedia.org/wikipedia/commons/e/ef/Stack_Overflow_icon.svg" width="40" height="40">
|
|
106
|
+
</a><br />
|
|
107
|
+
<a href="https://scholar.google.com/citations?user=Lv_LddYAAAAJ">
|
|
108
|
+
<img alt="Google Scholar" src="https://upload.wikimedia.org/wikipedia/commons/c/c7/Google_Scholar_logo.svg" width="40" height="40">
|
|
109
|
+
</a>
|
|
110
|
+
</td>
|
|
111
|
+
</tr>
|
|
112
|
+
</table>
|
|
113
|
+
</td>
|
|
114
|
+
</tr>
|
|
115
|
+
</table>
|
|
116
|
+
</td>
|
|
117
|
+
</tr>
|
|
118
|
+
</table>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
> 🌟 **Exciting Update**: We're delighted to introduce the brand new v0.1 documentation for Scikit-longitudinal! For a
|
|
122
|
+
> deep dive into the library's capabilities and features,
|
|
123
|
+
> please [visit here](https://simonprovost.github.io/scikit-longitudinal/).
|
|
124
|
+
|
|
125
|
+
## <a id="about-the-project"></a>💡 About The Project
|
|
126
|
+
|
|
127
|
+
`Scikit-longitudinal` is a machine learning library designed to analyse
|
|
128
|
+
longitudinal data (Classification tasks focussed as of today). It offers tools and models for processing, analysing,
|
|
129
|
+
and predicting longitudinal data, with a user-friendly interface that
|
|
130
|
+
integrates with the `Scikit-learn` ecosystem.
|
|
131
|
+
|
|
132
|
+
Please for further information, visit the [official documentation](https://simonprovost.github.io/scikit-longitudinal/).
|
|
133
|
+
|
|
134
|
+
## <a id="installation"></a>🛠️ Installation
|
|
135
|
+
|
|
136
|
+
**ON-HOLD until the first public release**
|
|
137
|
+
|
|
138
|
+
Note that for developers, you should follow up onto the `Contributing` tab
|
|
139
|
+
of the [official documentation](https://simonprovost.github.io/scikit-longitudinal/).
|
|
140
|
+
|
|
141
|
+
## <a id="how-to-use"></a></a>🚀 Getting Started
|
|
142
|
+
|
|
143
|
+
To perform longitudinal analysis with `Scikit-Longitudinal`, use the
|
|
144
|
+
`LongitudinalDataset` class to prepare the dataset. To analyse your
|
|
145
|
+
data, use the `LexicoGradientBoostingClassifier` _(i.e. Gradient Boosting variant for Longitudinal Data)_ or another
|
|
146
|
+
available
|
|
147
|
+
estimator/preprocessor.
|
|
148
|
+
|
|
149
|
+
Following that, you can apply the popular _fit_, _predict_, _prodict_proba_, or _transform_
|
|
150
|
+
methods in the same way that `Scikit-learn` does, as shown in the example below.
|
|
151
|
+
|
|
152
|
+
``` py
|
|
153
|
+
from scikit_longitudinal.data_preparation import LongitudinalDataset
|
|
154
|
+
from scikit_longitudinal.estimators.ensemble.lexicographical.lexico_gradient_boosting import LexicoGradientBoostingClassifier
|
|
155
|
+
|
|
156
|
+
dataset = LongitudinalDataset('./stroke_4_years.csv')
|
|
157
|
+
dataset.load_data_target_train_test_split(
|
|
158
|
+
target_column="class_stroke_wave_4",
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
# Pre-set or manually set your temporal dependencies
|
|
162
|
+
dataset.setup_features_group(input_data="Elsa")
|
|
163
|
+
|
|
164
|
+
model = LexicoGradientBoostingClassifier(
|
|
165
|
+
features_group=dataset.feature_groups(),
|
|
166
|
+
threshold_gain=0.00015
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
model.fit(dataset.X_train, dataset.y_train)
|
|
170
|
+
y_pred = model.predict(dataset.X_test)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## <a id="citation"></a>📝 How to Cite?
|
|
174
|
+
|
|
175
|
+
Paper's citation information will be added here once published. Currently, it has been submitted to a conference. In the
|
|
176
|
+
meantime,
|
|
177
|
+
for the repository, utilise the button top right corner of the repository "How to cite?".
|
|
178
|
+
Or open the following citation file: [CITATION.cff](./CITATION.cff).
|
|
179
|
+
|
|
180
|
+
## <a id="license"></a>🔐 License
|
|
181
|
+
|
|
182
|
+
[MIT License](./LICENSE)
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<!--suppress HtmlDeprecatedAttribute -->
|
|
2
|
+
<div align="center">
|
|
3
|
+
<p align="center">
|
|
4
|
+
<h1 align="center">
|
|
5
|
+
<br>
|
|
6
|
+
<a href="./logo.png"><img src="./logo.png" alt="Scikit-longitudinal" width="200"></a>
|
|
7
|
+
<br>
|
|
8
|
+
Scikit-longitudinal
|
|
9
|
+
<br>
|
|
10
|
+
</h1>
|
|
11
|
+
<h4 align="center">A specialised Python library for longitudinal data analysis built on Scikit-learn</h4>
|
|
12
|
+
<table align="center">
|
|
13
|
+
<tr>
|
|
14
|
+
<td align="center">
|
|
15
|
+
<h3>⚙️ Project Status</h3>
|
|
16
|
+
</td>
|
|
17
|
+
<td align="center">
|
|
18
|
+
<h3>☎️ Contacts</h3>
|
|
19
|
+
</td>
|
|
20
|
+
</tr>
|
|
21
|
+
<tr>
|
|
22
|
+
<td valign="top">
|
|
23
|
+
<!-- Python-related badges table -->
|
|
24
|
+
<table>
|
|
25
|
+
<tr>
|
|
26
|
+
<table>
|
|
27
|
+
<tr>
|
|
28
|
+
<td>
|
|
29
|
+
<a href="https://pdm.fming.dev">
|
|
30
|
+
<img alt="pdm" src="https://img.shields.io/badge/pdm-managed-blue?style=for-the-badge&logo=python">
|
|
31
|
+
</a>
|
|
32
|
+
</td>
|
|
33
|
+
<td>
|
|
34
|
+
<a href="https://pytest.org/">
|
|
35
|
+
<img alt="pytest" src="https://img.shields.io/badge/pytest-passing-green?style=for-the-badge&logo=pytest">
|
|
36
|
+
</a><br />
|
|
37
|
+
<a href="https://codecov.io/gh/Scikit-Longitudinal/Scikit-Longitudinal">
|
|
38
|
+
<img alt="Codecov" src="https://img.shields.io/badge/coverage-88%25-brightgreen.svg?style=for-the-badge&logo=appveyor">
|
|
39
|
+
</a>
|
|
40
|
+
</td>
|
|
41
|
+
</tr>
|
|
42
|
+
<tr>
|
|
43
|
+
<td>
|
|
44
|
+
<a href="https://flake8.pycqa.org/en/latest/">
|
|
45
|
+
<img alt="flake8" src="https://img.shields.io/badge/flake8-checked-blue?style=for-the-badge&logo=python">
|
|
46
|
+
</a><br />
|
|
47
|
+
<a href="https://www.pylint.org/">
|
|
48
|
+
<img alt="pylint" src="https://img.shields.io/badge/pylint-checked-blue?style=for-the-badge&logo=python">
|
|
49
|
+
</a><br />
|
|
50
|
+
<a href="https://pre-commit.com/">
|
|
51
|
+
<img alt="pre-commit" src="https://img.shields.io/badge/pre--commit-checked-blue?style=for-the-badge&logo=python">
|
|
52
|
+
</a>
|
|
53
|
+
</td>
|
|
54
|
+
<td>
|
|
55
|
+
<a href="https://github.com/PyCQA/isort">
|
|
56
|
+
<img alt="isort" src="https://img.shields.io/badge/isort-compliant-green?style=for-the-badge&logo=python">
|
|
57
|
+
</a><br />
|
|
58
|
+
<a href="https://github.com/psf/black">
|
|
59
|
+
<img alt="black" src="https://img.shields.io/badge/black-formatted-black?style=for-the-badge&logo=python">
|
|
60
|
+
</a><br />
|
|
61
|
+
<a href="https://github.com/hhatto/autopep8">
|
|
62
|
+
<img alt="autopep8" src="https://img.shields.io/badge/autopep8-compliant-green?style=for-the-badge&logo=python">
|
|
63
|
+
</a>
|
|
64
|
+
</td>
|
|
65
|
+
</tr>
|
|
66
|
+
</table>
|
|
67
|
+
<td valign="center">
|
|
68
|
+
<table>
|
|
69
|
+
<tr>
|
|
70
|
+
<td>
|
|
71
|
+
<a href="mailto:s.g.provost@kent.ac.uk">
|
|
72
|
+
<img alt="Microsoft Outlook" src="https://upload.wikimedia.org/wikipedia/commons/d/df/Microsoft_Office_Outlook_%282018%E2%80%93present%29.svg" width="40" height="40">
|
|
73
|
+
</a><br />
|
|
74
|
+
<a href="https://linkedin.com/in/simonprovostdev/">
|
|
75
|
+
<img alt="LinkedIn" src="https://upload.wikimedia.org/wikipedia/commons/c/ca/LinkedIn_logo_initials.png" width="40" height="40">
|
|
76
|
+
</a><br />
|
|
77
|
+
<a href="https://stackoverflow.com/users/9814037/simon-provost">
|
|
78
|
+
<img alt="Stack Overflow" src="https://upload.wikimedia.org/wikipedia/commons/e/ef/Stack_Overflow_icon.svg" width="40" height="40">
|
|
79
|
+
</a><br />
|
|
80
|
+
<a href="https://scholar.google.com/citations?user=Lv_LddYAAAAJ">
|
|
81
|
+
<img alt="Google Scholar" src="https://upload.wikimedia.org/wikipedia/commons/c/c7/Google_Scholar_logo.svg" width="40" height="40">
|
|
82
|
+
</a>
|
|
83
|
+
</td>
|
|
84
|
+
</tr>
|
|
85
|
+
</table>
|
|
86
|
+
</td>
|
|
87
|
+
</tr>
|
|
88
|
+
</table>
|
|
89
|
+
</td>
|
|
90
|
+
</tr>
|
|
91
|
+
</table>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
> 🌟 **Exciting Update**: We're delighted to introduce the brand new v0.1 documentation for Scikit-longitudinal! For a
|
|
95
|
+
> deep dive into the library's capabilities and features,
|
|
96
|
+
> please [visit here](https://simonprovost.github.io/scikit-longitudinal/).
|
|
97
|
+
|
|
98
|
+
## <a id="about-the-project"></a>💡 About The Project
|
|
99
|
+
|
|
100
|
+
`Scikit-longitudinal` is a machine learning library designed to analyse
|
|
101
|
+
longitudinal data (Classification tasks focussed as of today). It offers tools and models for processing, analysing,
|
|
102
|
+
and predicting longitudinal data, with a user-friendly interface that
|
|
103
|
+
integrates with the `Scikit-learn` ecosystem.
|
|
104
|
+
|
|
105
|
+
Please for further information, visit the [official documentation](https://simonprovost.github.io/scikit-longitudinal/).
|
|
106
|
+
|
|
107
|
+
## <a id="installation"></a>🛠️ Installation
|
|
108
|
+
|
|
109
|
+
**ON-HOLD until the first public release**
|
|
110
|
+
|
|
111
|
+
Note that for developers, you should follow up onto the `Contributing` tab
|
|
112
|
+
of the [official documentation](https://simonprovost.github.io/scikit-longitudinal/).
|
|
113
|
+
|
|
114
|
+
## <a id="how-to-use"></a></a>🚀 Getting Started
|
|
115
|
+
|
|
116
|
+
To perform longitudinal analysis with `Scikit-Longitudinal`, use the
|
|
117
|
+
`LongitudinalDataset` class to prepare the dataset. To analyse your
|
|
118
|
+
data, use the `LexicoGradientBoostingClassifier` _(i.e. Gradient Boosting variant for Longitudinal Data)_ or another
|
|
119
|
+
available
|
|
120
|
+
estimator/preprocessor.
|
|
121
|
+
|
|
122
|
+
Following that, you can apply the popular _fit_, _predict_, _prodict_proba_, or _transform_
|
|
123
|
+
methods in the same way that `Scikit-learn` does, as shown in the example below.
|
|
124
|
+
|
|
125
|
+
``` py
|
|
126
|
+
from scikit_longitudinal.data_preparation import LongitudinalDataset
|
|
127
|
+
from scikit_longitudinal.estimators.ensemble.lexicographical.lexico_gradient_boosting import LexicoGradientBoostingClassifier
|
|
128
|
+
|
|
129
|
+
dataset = LongitudinalDataset('./stroke_4_years.csv')
|
|
130
|
+
dataset.load_data_target_train_test_split(
|
|
131
|
+
target_column="class_stroke_wave_4",
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
# Pre-set or manually set your temporal dependencies
|
|
135
|
+
dataset.setup_features_group(input_data="Elsa")
|
|
136
|
+
|
|
137
|
+
model = LexicoGradientBoostingClassifier(
|
|
138
|
+
features_group=dataset.feature_groups(),
|
|
139
|
+
threshold_gain=0.00015
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
model.fit(dataset.X_train, dataset.y_train)
|
|
143
|
+
y_pred = model.predict(dataset.X_test)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## <a id="citation"></a>📝 How to Cite?
|
|
147
|
+
|
|
148
|
+
Paper's citation information will be added here once published. Currently, it has been submitted to a conference. In the
|
|
149
|
+
meantime,
|
|
150
|
+
for the repository, utilise the button top right corner of the repository "How to cite?".
|
|
151
|
+
Or open the following citation file: [CITATION.cff](./CITATION.cff).
|
|
152
|
+
|
|
153
|
+
## <a id="license"></a>🔐 License
|
|
154
|
+
|
|
155
|
+
[MIT License](./LICENSE)
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "Scikit-longitudinal"
|
|
3
|
+
version = "0.0.2"
|
|
4
|
+
description = "Scikit-longitudinal, an open-source Python lib for longitudinal data analysis, builds on Scikit-learn's foundation. It offers specialized tools to tackle challenges of repeated measures data, ideal for researchers, data scientists, & analysts."
|
|
5
|
+
authors = [
|
|
6
|
+
{ name = "Provost Simon", email = "simon.gilbert.provost@gmail.com" },
|
|
7
|
+
{ name = "Alex Freitas", email = "a.a.freitas@kent.ac.uk" },
|
|
8
|
+
]
|
|
9
|
+
dependencies = [
|
|
10
|
+
"scipy>=1.5.0",
|
|
11
|
+
"pandas<2.0.0,>=1.5.3",
|
|
12
|
+
"matplotlib<4.0.0,>=3.7.0",
|
|
13
|
+
"jupyter<2.0.0,>=1.0.0",
|
|
14
|
+
"overrides<8.0.0,>=7.3.1",
|
|
15
|
+
"ray<3.0.0,>=2.3.1",
|
|
16
|
+
"statsmodels<1.0.0,>=0.14.0",
|
|
17
|
+
"numpy==1.23.3",
|
|
18
|
+
"graphviz<1.0.0,>=0.20.1",
|
|
19
|
+
"arff<1.0,>=0.9",
|
|
20
|
+
"threadpoolctl<4.0.0,>=3.1.0",
|
|
21
|
+
"configspace<1.0.0,>=0.7.1",
|
|
22
|
+
"stopit>=1.1.2",
|
|
23
|
+
"rich>=13.6.0",
|
|
24
|
+
"joblib>=0.11",
|
|
25
|
+
"deep-forest>=0.1.7",
|
|
26
|
+
"starboost==0.0.2",
|
|
27
|
+
"scikit-lexicographical-trees>=0.0.2",
|
|
28
|
+
]
|
|
29
|
+
requires-python = ">=3.9,<3.10"
|
|
30
|
+
readme = "README.md"
|
|
31
|
+
|
|
32
|
+
[project.license]
|
|
33
|
+
text = "MIT"
|
|
34
|
+
|
|
35
|
+
[tool.pdm]
|
|
36
|
+
distribution = true
|
|
37
|
+
|
|
38
|
+
[tool.pdm.resolution]
|
|
39
|
+
respect-source-order = true
|
|
40
|
+
excludes = [
|
|
41
|
+
"scikit-learn",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[tool.pdm.dev-dependencies]
|
|
45
|
+
lint = [
|
|
46
|
+
"autoflake<3.0.0,>=2.1.1",
|
|
47
|
+
"flake8-docstrings>=1.7.0",
|
|
48
|
+
"pydocstyle>=6.3.0",
|
|
49
|
+
"flake8>=6.0.0",
|
|
50
|
+
"pylint>=2.17.1",
|
|
51
|
+
"isort>=5.12.0",
|
|
52
|
+
"black>=23.10.1",
|
|
53
|
+
"autopep8>=2.0.2",
|
|
54
|
+
"docformatter[tomli]<2.0.0,>=1.6.4",
|
|
55
|
+
]
|
|
56
|
+
test = [
|
|
57
|
+
"pytest-cov>=4.0.0",
|
|
58
|
+
"genbadge>=1.1.0",
|
|
59
|
+
]
|
|
60
|
+
doc = [
|
|
61
|
+
"mkdocs==1.6.0",
|
|
62
|
+
"mkdocs-get-deps==0.2.0",
|
|
63
|
+
"mkdocs-material==9.5.27",
|
|
64
|
+
"mkdocs-material[imaging]",
|
|
65
|
+
"mkdocs-material-extensions==1.3.1",
|
|
66
|
+
"mkdocs-minify-plugin==0.8.0",
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
[tool.pdm.scripts._set_pdm_use_venv]
|
|
70
|
+
cmd = "pdm use --venv ${PDM_IN_ENV}"
|
|
71
|
+
|
|
72
|
+
[tool.pdm.scripts._use_python39]
|
|
73
|
+
shell = "pdm use \"${SKLONG_PYTHON_PATH}\""
|
|
74
|
+
env_file = ".env"
|
|
75
|
+
|
|
76
|
+
[tool.pdm.scripts._create_env]
|
|
77
|
+
shell = "pdm venv create --with-pip ${SKLONG_PYTHON_VERSION} --force"
|
|
78
|
+
env_file = ".env"
|
|
79
|
+
|
|
80
|
+
[tool.pdm.scripts._check_sklong_vars]
|
|
81
|
+
shell = "echo 'Make sure to set the SKLONG_PYTHON_PATH and SKLONG_PYTHON_VERSION environment variables'"
|
|
82
|
+
|
|
83
|
+
[tool.pdm.scripts._set_env_var]
|
|
84
|
+
shell = "echo 'could you please run `export PDM_IN_ENV=in-project`'"
|
|
85
|
+
|
|
86
|
+
[tool.pdm.scripts._activate_env]
|
|
87
|
+
cmd = "echo 'could you please activate the environment via `eval $(pdm venv activate (dollar-sign)PDM_IN_ENV)`'"
|
|
88
|
+
|
|
89
|
+
[tool.pdm.scripts.setup_sklong]
|
|
90
|
+
composite = [
|
|
91
|
+
"_check_sklong_vars",
|
|
92
|
+
"_use_python39",
|
|
93
|
+
"_create_env",
|
|
94
|
+
"_set_env_var",
|
|
95
|
+
"_activate_env",
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
[tool.pdm.scripts.remove_env]
|
|
99
|
+
cmd = "pdm venv remove ${PDM_IN_ENV}"
|
|
100
|
+
|
|
101
|
+
[tool.pdm.scripts._clean_project]
|
|
102
|
+
cmd = "echo could you please deactivate the environment via `conda deactivate` then run `pdm run remove_env`"
|
|
103
|
+
|
|
104
|
+
[tool.pdm.scripts.clean]
|
|
105
|
+
composite = [
|
|
106
|
+
"_check_pdm_vars",
|
|
107
|
+
"_clean_project",
|
|
108
|
+
]
|
|
109
|
+
|
|
110
|
+
[tool.pdm.scripts._install_deps]
|
|
111
|
+
cmd = "pdm install --venv ${PDM_IN_ENV} --prod"
|
|
112
|
+
|
|
113
|
+
[tool.pdm.scripts._install_deps.env_file]
|
|
114
|
+
override = ".env"
|
|
115
|
+
|
|
116
|
+
[tool.pdm.scripts._check_pdm_vars]
|
|
117
|
+
call = "scripts.pdm.pdm_pre_install:check_pdm_variables"
|
|
118
|
+
|
|
119
|
+
[tool.pdm.scripts._risky_clean]
|
|
120
|
+
shell = "rm -rf pdm.lock __pypackages__"
|
|
121
|
+
|
|
122
|
+
[tool.pdm.scripts.install_prod]
|
|
123
|
+
composite = [
|
|
124
|
+
"_check_pdm_vars",
|
|
125
|
+
"_set_pdm_use_venv",
|
|
126
|
+
"_install_deps",
|
|
127
|
+
]
|
|
128
|
+
|
|
129
|
+
[tool.pdm.scripts.view_env]
|
|
130
|
+
cmd = "pdm venv list"
|
|
131
|
+
|
|
132
|
+
[tool.pdm.scripts.build_dist]
|
|
133
|
+
cmd = "pdm build"
|
|
134
|
+
|
|
135
|
+
[tool.pdm.scripts.update_lock]
|
|
136
|
+
cmd = "pdm lock"
|
|
137
|
+
|
|
138
|
+
[tool.pdm.scripts.update_lock.env_file]
|
|
139
|
+
override = ".env"
|
|
140
|
+
|
|
141
|
+
[tool.pdm.scripts.update_lock_dev]
|
|
142
|
+
cmd = "pdm lock -d"
|
|
143
|
+
|
|
144
|
+
[tool.pdm.scripts.update_lock_dev.env_file]
|
|
145
|
+
override = ".env"
|
|
146
|
+
|
|
147
|
+
[tool.pdm.scripts._install_dev]
|
|
148
|
+
cmd = "pdm install -G lint -G test -G doc --no-default"
|
|
149
|
+
|
|
150
|
+
[tool.pdm.scripts._install_dev.env_file]
|
|
151
|
+
override = ".env"
|
|
152
|
+
|
|
153
|
+
[tool.pdm.scripts.install_dev]
|
|
154
|
+
composite = [
|
|
155
|
+
"_set_pdm_use_venv",
|
|
156
|
+
"_install_dev",
|
|
157
|
+
]
|
|
158
|
+
|
|
159
|
+
[tool.pdm.scripts.tests]
|
|
160
|
+
cmd = "pytest scikit_longitudinal/ --cov=./ --cov-report=html --cov-config=.coveragerc --cov-report=html:htmlcov/scikit_longitudinal -s -vv --capture=no"
|
|
161
|
+
|
|
162
|
+
[tool.pdm.scripts.clean_cache]
|
|
163
|
+
shell = "rm -rf htmlcov .pytest_cache .*_cache && find . -type d -name '__pycache__' -exec rm -r {} +"
|
|
164
|
+
|
|
165
|
+
[tool.pdm.scripts.isort]
|
|
166
|
+
cmd = "isort --skip=scikit-learn scikit_longitudinal"
|
|
167
|
+
|
|
168
|
+
[tool.pdm.scripts.black]
|
|
169
|
+
cmd = "black --line-length 120 --preview --exclude=./scikit-learn/* scikit_longitudinal"
|
|
170
|
+
|
|
171
|
+
[tool.pdm.scripts.flake8]
|
|
172
|
+
cmd = "flake8 --exclude=./scikit-learn/* scikit_longitudinal"
|
|
173
|
+
|
|
174
|
+
[tool.pdm.scripts.autoflake]
|
|
175
|
+
cmd = "autoflake --in-place --remove-all-unused-imports --recursive --exclude=./scikit-learn/* scikit_longitudinal"
|
|
176
|
+
|
|
177
|
+
[tool.pdm.scripts.pylint]
|
|
178
|
+
cmd = "pylint --rcfile=pylintrc scikit_longitudinal/"
|
|
179
|
+
|
|
180
|
+
[tool.pdm.scripts.precommit]
|
|
181
|
+
shell = "git ls-files -- 'scikit_longitudinal/*.py' | xargs pre-commit run --files"
|
|
182
|
+
|
|
183
|
+
[tool.pdm.scripts.autopep8]
|
|
184
|
+
cmd = "autopep8 --in-place --aggressive --aggressive --max-line-length 120 --recursive --exclude=./scikit-learn/* scikit_longitudinal"
|
|
185
|
+
|
|
186
|
+
[tool.pdm.scripts.docformatter]
|
|
187
|
+
cmd = "docformatter --in-place --recursive --wrap-summaries 120 --wrap-descriptions 120 --blank --make-summary-multi-line --exclude=./scikit-learn/ scikit_longitudinal"
|
|
188
|
+
|
|
189
|
+
[tool.pdm.scripts.lint]
|
|
190
|
+
composite = [
|
|
191
|
+
"flake8",
|
|
192
|
+
"pylint",
|
|
193
|
+
]
|
|
194
|
+
|
|
195
|
+
[tool.pdm.scripts.format]
|
|
196
|
+
composite = [
|
|
197
|
+
"isort",
|
|
198
|
+
"autopep8",
|
|
199
|
+
"black",
|
|
200
|
+
"autoflake",
|
|
201
|
+
"docformatter",
|
|
202
|
+
]
|
|
203
|
+
|
|
204
|
+
[tool.pdm.scripts.lint_format_tests]
|
|
205
|
+
composite = [
|
|
206
|
+
"format",
|
|
207
|
+
"lint",
|
|
208
|
+
"tests",
|
|
209
|
+
]
|
|
210
|
+
|
|
211
|
+
[tool.pdm.scripts.docs]
|
|
212
|
+
shell = "mkdocs serve"
|
|
213
|
+
|
|
214
|
+
[tool.flake8]
|
|
215
|
+
max-line-length = 120
|
|
216
|
+
|
|
217
|
+
[tool.black]
|
|
218
|
+
line-length = 120
|
|
219
|
+
target-version = [
|
|
220
|
+
"py310",
|
|
221
|
+
]
|
|
222
|
+
include = "\\.pyi?$"
|
|
223
|
+
exclude = "/(\n \\.git\n | \\.hg\n | \\.mypy_cache\n | \\.tox\n | \\.venv\n | _build\n | buck-out\n | build\n | dist\n | scikit-learn\n)/\n"
|
|
224
|
+
|
|
225
|
+
[tool.isort]
|
|
226
|
+
profile = "black"
|
|
227
|
+
multi_line_output = 3
|
|
228
|
+
include_trailing_comma = true
|
|
229
|
+
force_grid_wrap = 0
|
|
230
|
+
use_parentheses = true
|
|
231
|
+
line_length = 120
|
|
232
|
+
|
|
233
|
+
[tool.yapfignore]
|
|
234
|
+
ignore_patterns = [
|
|
235
|
+
"scikit-learn/**/*.py",
|
|
236
|
+
]
|
|
237
|
+
|
|
238
|
+
[build-system]
|
|
239
|
+
requires = [
|
|
240
|
+
"pdm-backend",
|
|
241
|
+
]
|
|
242
|
+
build-backend = "pdm.backend"
|
|
File without changes
|