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"