classifier-toolkit 0.2.3__tar.gz → 0.2.4__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.
Files changed (146) hide show
  1. classifier_toolkit-0.2.4/.github/workflows/checks.yaml +134 -0
  2. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/.github/workflows/master.yaml +9 -5
  3. classifier_toolkit-0.2.4/.github/workflows/working-branch.yaml +14 -0
  4. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/.gitignore +1 -0
  5. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/PKG-INFO +1 -1
  6. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/pyproject.toml +1 -1
  7. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/ruff.toml +0 -2
  8. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/uv.lock +1 -1
  9. classifier_toolkit-0.2.3/.github/workflows/ci.yaml +0 -227
  10. classifier_toolkit-0.2.3/WEBAPP_IMPACT.md +0 -37
  11. classifier_toolkit-0.2.3/notebooks/feature_reduction_example.ipynb +0 -2308
  12. classifier_toolkit-0.2.3/notebooks/feature_reduction_paylater_comparison.ipynb +0 -2198
  13. classifier_toolkit-0.2.3/notebooks/paylater_reference.ipynb +0 -712
  14. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/.github/pull_request_template/default.md +0 -0
  15. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/.python-version +0 -0
  16. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/.sqlfluff +0 -0
  17. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/LICENSE +0 -0
  18. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/Makefile +0 -0
  19. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/README.md +0 -0
  20. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/__init__.py +0 -0
  21. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/bivariate_analysis.py +0 -0
  22. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/eda_toolkit.py +0 -0
  23. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/feature_engineering.py +0 -0
  24. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/first_glance.py +0 -0
  25. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/univariate_analysis.py +0 -0
  26. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/visualizations.py +0 -0
  27. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/warnings/__init__.py +0 -0
  28. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/warnings/automated_warnings.py +0 -0
  29. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/eda/warnings/default_warnings.py +0 -0
  30. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/__init__.py +0 -0
  31. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/base.py +0 -0
  32. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/correlation.py +0 -0
  33. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/counter_intuitive.py +0 -0
  34. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/drift.py +0 -0
  35. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/expert_rules.py +0 -0
  36. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/low_variance.py +0 -0
  37. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/predictive_power.py +0 -0
  38. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_reduction/reducer.py +0 -0
  39. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/__init__.py +0 -0
  40. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/base.py +0 -0
  41. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/embedded_methods/__init__.py +0 -0
  42. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/embedded_methods/elastic_net.py +0 -0
  43. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/feature_stability.py +0 -0
  44. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/meta_selector.py +0 -0
  45. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/utils/__init__.py +0 -0
  46. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/utils/data_handling.py +0 -0
  47. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/utils/plottings.py +0 -0
  48. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/utils/scoring.py +0 -0
  49. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/wrapper_methods/__init__.py +0 -0
  50. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/wrapper_methods/bayesian_search.py +0 -0
  51. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/wrapper_methods/boruta.py +0 -0
  52. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/wrapper_methods/rfe.py +0 -0
  53. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/wrapper_methods/rfe_catboost.py +0 -0
  54. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/feature_selection/wrapper_methods/sequential_selection.py +0 -0
  55. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/__init__.py +0 -0
  56. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/hyper_parameter_tuning/__init__.py +0 -0
  57. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/hyper_parameter_tuning/tuner.py +0 -0
  58. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/models/__init__.py +0 -0
  59. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/models/base.py +0 -0
  60. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/models/ensemble_methods.py +0 -0
  61. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/utils/__init__.py +0 -0
  62. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/classifier_toolkit/model_training/utils/params.py +0 -0
  63. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/changelog.md +0 -0
  64. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/bivariate_analysis.md +0 -0
  65. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/eda_toolkit.md +0 -0
  66. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/feature_engineering.md +0 -0
  67. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/first_glance.md +0 -0
  68. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/overview.md +0 -0
  69. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/univariate_analysis.md +0 -0
  70. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/visualizations.md +0 -0
  71. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/warnings/default_warnings.md +0 -0
  72. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/eda/warnings/warning_system.md +0 -0
  73. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/examples/eda_example.md +0 -0
  74. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/examples/feature_selection_advanced.md +0 -0
  75. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/examples/feature_selection_example.md +0 -0
  76. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/embedded_methods/elastic_net.md +0 -0
  77. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/feature_stability.md +0 -0
  78. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/meta_selector.md +0 -0
  79. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/overview.md +0 -0
  80. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/utils/data_handling.md +0 -0
  81. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/utils/scoring.md +0 -0
  82. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/wrapper_methods/bayesian_search.md +0 -0
  83. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/wrapper_methods/boruta.md +0 -0
  84. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/wrapper_methods/rfe.md +0 -0
  85. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/feature_selection/wrapper_methods/sequential_selection.md +0 -0
  86. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/index.md +0 -0
  87. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/bivariate_analysis.md +0 -0
  88. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/eda_toolkit.md +0 -0
  89. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/feature_engineering.md +0 -0
  90. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/first_glance.md +0 -0
  91. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/overview.md +0 -0
  92. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/univariate_analysis.md +0 -0
  93. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/visualizations.md +0 -0
  94. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/warnings/default_warnings.md +0 -0
  95. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/eda/warnings/warning_system.md +0 -0
  96. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/correlation.md +0 -0
  97. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/counter_intuitive.md +0 -0
  98. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/drift.md +0 -0
  99. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/expert_rules.md +0 -0
  100. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/low_variance.md +0 -0
  101. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/overview.md +0 -0
  102. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/predictive_power.md +0 -0
  103. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_reduction/reducer.md +0 -0
  104. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/embedded_methods/elastic_net.md +0 -0
  105. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/feature_stability.md +0 -0
  106. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/meta_selector.md +0 -0
  107. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/overview.md +0 -0
  108. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/utils/data_handling.md +0 -0
  109. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/utils/scoring.md +0 -0
  110. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/wrapper_methods/bayesian_search.md +0 -0
  111. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/wrapper_methods/boruta.md +0 -0
  112. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/wrapper_methods/rfe.md +0 -0
  113. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/reference/feature_selection/wrapper_methods/sequential_selection.md +0 -0
  114. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/docs/stylesheets/extra.css +0 -0
  115. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/examples/__init__.py +0 -0
  116. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/examples/example.py +0 -0
  117. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/main.py +0 -0
  118. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/mkdocs.yml +0 -0
  119. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/notebooks/paylater_removed.json +0 -0
  120. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/__init__.py +0 -0
  121. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/conftest.py +0 -0
  122. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/__init__.py +0 -0
  123. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/test_bivariate_analysis.py +0 -0
  124. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/test_feature_engineering.py +0 -0
  125. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/test_first_glance.py +0 -0
  126. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/test_univariate_analysis.py +0 -0
  127. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/test_visualizations.py +0 -0
  128. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/eda/test_warnings.py +0 -0
  129. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/__init__.py +0 -0
  130. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_correlation.py +0 -0
  131. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_counter_intuitive.py +0 -0
  132. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_drift.py +0 -0
  133. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_expert_rules.py +0 -0
  134. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_low_variance.py +0 -0
  135. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_predictive_power.py +0 -0
  136. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_reducer.py +0 -0
  137. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_reduction/test_smoke.py +0 -0
  138. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/__init__.py +0 -0
  139. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_bayesian_search.py +0 -0
  140. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_boruta.py +0 -0
  141. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_elastic_net.py +0 -0
  142. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_feature_stability.py +0 -0
  143. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_rfe.py +0 -0
  144. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_rfe_catboost.py +0 -0
  145. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_scoring.py +0 -0
  146. {classifier_toolkit-0.2.3 → classifier_toolkit-0.2.4}/tests/feature_selection/test_sequential_selection.py +0 -0
@@ -0,0 +1,134 @@
1
+ name: Checks
2
+
3
+ on:
4
+ workflow_call:
5
+ secrets:
6
+ NEXUS_READER_PASSWORD:
7
+ required: true
8
+ inputs:
9
+ python_version:
10
+ required: false
11
+ type: string
12
+ default: "3.12.6"
13
+
14
+ env:
15
+ UV_INDEX_URL: "https://${{ vars.NEXUS_READER_USERNAME }}:${{ secrets.NEXUS_READER_PASSWORD }}@package-registry.tooling-production.qonto.co/repository/pypi-proxies/simple"
16
+
17
+ jobs:
18
+ dependencies:
19
+ runs-on: default
20
+ steps:
21
+ - uses: actions/checkout@v6
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v4
25
+ with:
26
+ python-version: ${{ inputs.python_version }}
27
+
28
+ - name: Install system dependencies
29
+ run: |
30
+ sudo apt-get update
31
+ sudo apt-get install -y build-essential gcc g++ make
32
+
33
+ - name: Configure Git
34
+ run: |
35
+ git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
36
+ env:
37
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
+
39
+ - name: Install uv
40
+ run: |
41
+ curl -LsSf https://astral.sh/uv/install.sh | sh
42
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
43
+
44
+ - name: Cache uv
45
+ uses: actions/cache@v5
46
+ with:
47
+ path: |
48
+ ~/.cache/uv
49
+ .venv
50
+ key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
51
+ restore-keys: |
52
+ ${{ runner.os }}-uv-${{ github.ref_name }}-
53
+
54
+ - name: Install dependencies
55
+ run: uv sync --group test --extra liveplotting
56
+ env:
57
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
58
+
59
+ lint:
60
+ needs: dependencies
61
+ runs-on: default
62
+ steps:
63
+ - uses: actions/checkout@v6
64
+
65
+ - name: Set up Python
66
+ uses: actions/setup-python@v4
67
+ with:
68
+ python-version: ${{ inputs.python_version }}
69
+
70
+ - name: Install uv
71
+ run: |
72
+ curl -LsSf https://astral.sh/uv/install.sh | sh
73
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
74
+
75
+ - name: Install system dependencies
76
+ run: |
77
+ sudo apt-get update
78
+ sudo apt-get install -y build-essential gcc g++ make
79
+
80
+ - name: Restore cache
81
+ uses: actions/cache@v5
82
+ with:
83
+ path: |
84
+ ~/.cache/uv
85
+ .venv
86
+ key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
87
+
88
+ - name: Install dependencies
89
+ run: uv sync --group lint
90
+
91
+ - name: Run linting
92
+ run: uv run make lint
93
+
94
+ test:
95
+ needs: dependencies
96
+ runs-on: default
97
+ strategy:
98
+ fail-fast: false
99
+ matrix:
100
+ test-group: [eda, feature_selection, feature_reduction]
101
+ steps:
102
+ - uses: actions/checkout@v6
103
+
104
+ - name: Set up Python
105
+ uses: actions/setup-python@v4
106
+ with:
107
+ python-version: ${{ inputs.python_version }}
108
+
109
+ - name: Install system dependencies
110
+ run: |
111
+ sudo apt-get update
112
+ sudo apt-get install -y build-essential gcc g++ make
113
+
114
+ - name: Install uv
115
+ run: |
116
+ curl -LsSf https://astral.sh/uv/install.sh | sh
117
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
118
+
119
+ - name: Restore cache
120
+ uses: actions/cache@v5
121
+ with:
122
+ path: |
123
+ ~/.cache/uv
124
+ .venv
125
+ .pytest_cache
126
+ key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
127
+ restore-keys: |
128
+ ${{ runner.os }}-uv-${{ github.ref_name }}-
129
+
130
+ - name: Install dependencies
131
+ run: uv sync --group test --extra exp --extra liveplotting
132
+
133
+ - name: Run tests (${{ matrix.test-group }})
134
+ run: uv run pytest tests/${{ matrix.test-group }}/ -v --lf --ff
@@ -1,16 +1,20 @@
1
1
  name: Master
2
+ run-name: "${{ github.actor }} - Merge to Master"
2
3
 
3
4
  on:
4
5
  push:
5
6
  branches:
6
7
  - master
7
8
 
8
- env:
9
- PYTHON_VERSION: "3.12.6"
10
-
11
-
12
9
  jobs:
10
+ run-checks:
11
+ name: Checks
12
+ uses: ./.github/workflows/checks.yaml
13
+ secrets:
14
+ NEXUS_READER_PASSWORD: ${{ secrets.NEXUS_READER_PASSWORD }}
15
+
13
16
  build-and-publish:
17
+ needs: run-checks
14
18
  runs-on: default
15
19
  permissions:
16
20
  contents: write
@@ -20,7 +24,7 @@ jobs:
20
24
  - name: Set up Python
21
25
  uses: actions/setup-python@v4
22
26
  with:
23
- python-version: ${{ env.PYTHON_VERSION }}
27
+ python-version: "3.12.6"
24
28
 
25
29
  - name: Install system dependencies
26
30
  run: |
@@ -0,0 +1,14 @@
1
+ name: Working Branch
2
+ run-name: "${{ github.ref_name }} - Working Branch"
3
+
4
+ on:
5
+ push:
6
+ branches-ignore:
7
+ - master
8
+
9
+ jobs:
10
+ run-checks:
11
+ name: Checks
12
+ uses: ./.github/workflows/checks.yaml
13
+ secrets:
14
+ NEXUS_READER_PASSWORD: ${{ secrets.NEXUS_READER_PASSWORD }}
@@ -77,6 +77,7 @@ target/
77
77
 
78
78
  # Jupyter Notebook
79
79
  .ipynb_checkpoints
80
+ *.ipynb
80
81
 
81
82
  # IPython
82
83
  profile_default/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: classifier-toolkit
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Author-email: "senih.yilmaz" <senih.yilmaz@qonto.com>, "jeremy.fraoua" <jeremy.fraoua@qonto.com>, "gauthier.marquand" <gauthier.marquand@qonto.com>, "arnaud.alepee" <arnaud.alepee@qonto.com>
5
5
  License-File: LICENSE
6
6
  Requires-Python: <3.13,>=3.9
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "classifier-toolkit"
3
- version = "0.2.3"
3
+ version = "0.2.4"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9,<3.13"
@@ -1,5 +1,3 @@
1
- extend-include = ["*.ipynb"]
2
-
3
1
  [lint]
4
2
  select = [
5
3
  "A",
@@ -349,7 +349,7 @@ wheels = [
349
349
 
350
350
  [[package]]
351
351
  name = "classifier-toolkit"
352
- version = "0.2.3"
352
+ version = "0.2.4"
353
353
  source = { editable = "." }
354
354
  dependencies = [
355
355
  { name = "catboost" },
@@ -1,227 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches:
6
- - '**'
7
- pull_request:
8
- branches:
9
- - '**'
10
-
11
- env:
12
- APP_NAME: ${{ github.event.repository.name }}
13
- PYTHON_VERSION: "3.12.6"
14
- UV_INDEX_URL: "https://${{ vars.NEXUS_READER_USERNAME }}:${{ secrets.NEXUS_READER_PASSWORD }}@package-registry.tooling-production.qonto.co/repository/pypi-proxies/simple"
15
-
16
- jobs:
17
- dependencies:
18
- runs-on: default
19
- steps:
20
- - uses: actions/checkout@v6
21
-
22
- - name: Set up Python
23
- uses: actions/setup-python@v4
24
- with:
25
- python-version: ${{ env.PYTHON_VERSION }}
26
-
27
- # Install system dependencies
28
- - name: Install system dependencies
29
- run: |
30
- sudo apt-get update
31
- sudo apt-get install -y build-essential gcc g++ make
32
-
33
- # Configure Git for private repo access
34
- - name: Configure Git
35
- run: |
36
- git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
37
- env:
38
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
39
-
40
- # Install uv
41
- - name: Install uv
42
- run: |
43
- curl -LsSf https://astral.sh/uv/install.sh | sh
44
- echo "$HOME/.local/bin" >> $GITHUB_PATH
45
-
46
- - name: Cache uv
47
- id: cache-uv
48
- uses: actions/cache@v5
49
- with:
50
- path: |
51
- ~/.cache/uv
52
- .venv
53
- key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
54
- restore-keys: |
55
- ${{ runner.os }}-uv-${{ github.ref_name }}-
56
-
57
- - name: Install dependencies
58
- run: |
59
- uv sync --group test --extra liveplotting
60
- env:
61
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62
-
63
- - name: Save uv environment
64
- if: always()
65
- run: echo "Dependencies installed with uv."
66
-
67
- lint:
68
- needs: dependencies
69
- runs-on: default
70
- steps:
71
- - uses: actions/checkout@v6
72
-
73
- - name: Set up Python
74
- uses: actions/setup-python@v4
75
- with:
76
- python-version: ${{ env.PYTHON_VERSION }}
77
-
78
- # Install uv
79
- - name: Install uv
80
- run: |
81
- curl -LsSf https://astral.sh/uv/install.sh | sh
82
- echo "$HOME/.local/bin" >> $GITHUB_PATH
83
-
84
- # Add make installation
85
- - name: Install make
86
- run: sudo apt-get update && sudo apt-get install -y make
87
-
88
- - name: Restore cache
89
- uses: actions/cache@v5
90
- with:
91
- path: |
92
- ~/.cache/uv
93
- .venv
94
- key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
95
-
96
- - name: Install dependencies
97
- run: uv sync --group lint
98
-
99
- - name: Run linting
100
- run: uv run make lint
101
-
102
- # Uncomment if you want to use mypy
103
- # mypy:
104
- # needs: dependencies
105
- # runs-on: default
106
- # steps:
107
- # - uses: actions/checkout@v6
108
- #
109
- # - name: Set up Python
110
- # uses: actions/setup-python@v4
111
- # with:
112
- # python-version: ${{ env.PYTHON_VERSION }}
113
- #
114
- # # Install uv
115
- # - name: Install uv
116
- # run: |
117
- # curl -LsSf https://astral.sh/uv/install.sh | sh
118
- # echo "$HOME/.local/bin" >> $GITHUB_PATH
119
- #
120
- # # Add make installation
121
- # - name: Install make
122
- # run: sudo apt-get update && sudo apt-get install -y make
123
- #
124
- # - name: Restore cache
125
- # uses: actions/cache@v4
126
- # with:
127
- # path: |
128
- # ~/.cache/uv
129
- # .venv
130
- # key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
131
- #
132
- # - name: Install dependencies
133
- # run: uv sync --group lint
134
- #
135
- # - name: Run mypy
136
- # run: uv run make mypy
137
-
138
- test:
139
- needs: dependencies
140
- runs-on: default
141
- # Layer 2: Split tests in parallel
142
- strategy:
143
- fail-fast: false
144
- matrix:
145
- test-group: [eda, feature_selection, feature_reduction]
146
- steps:
147
- - uses: actions/checkout@v6
148
-
149
- - name: Set up Python
150
- uses: actions/setup-python@v4
151
- with:
152
- python-version: ${{ env.PYTHON_VERSION }}
153
-
154
- # Install system dependencies
155
- - name: Install system dependencies
156
- run: |
157
- sudo apt-get update
158
- sudo apt-get install -y build-essential gcc g++ make
159
-
160
- # Install uv
161
- - name: Install uv
162
- run: |
163
- curl -LsSf https://astral.sh/uv/install.sh | sh
164
- echo "$HOME/.local/bin" >> $GITHUB_PATH
165
-
166
- - name: Restore cache
167
- uses: actions/cache@v5
168
- with:
169
- path: |
170
- ~/.cache/uv
171
- .venv
172
- .pytest_cache
173
- key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
174
- restore-keys: |
175
- ${{ runner.os }}-uv-${{ github.ref_name }}-
176
-
177
- - name: Install dependencies
178
- run: uv sync --group test --extra exp --extra liveplotting
179
-
180
- # Layer 3: Run failed tests first, then rest
181
- - name: Run tests (${{ matrix.test-group }})
182
- run: uv run pytest tests/${{ matrix.test-group }}/ -v --lf --ff
183
-
184
- build_test:
185
- needs: [lint, test]
186
- runs-on: default
187
- if: github.ref == 'refs/heads/master' || github.base_ref == 'master'
188
- steps:
189
- - uses: actions/checkout@v6
190
-
191
- - name: Set up Python
192
- uses: actions/setup-python@v4
193
- with:
194
- python-version: ${{ env.PYTHON_VERSION }}
195
-
196
- # Install uv
197
- - name: Install uv
198
- run: |
199
- curl -LsSf https://astral.sh/uv/install.sh | sh
200
- echo "$HOME/.local/bin" >> $GITHUB_PATH
201
-
202
- # Add make installation if your build process uses make
203
- - name: Install make
204
- run: sudo apt-get update && sudo apt-get install -y make
205
-
206
- - name: Restore cache
207
- uses: actions/cache@v5
208
- with:
209
- path: |
210
- ~/.cache/uv
211
- .venv
212
- key: ${{ runner.os }}-uv-${{ github.ref_name }}-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
213
-
214
- - name: Install dependencies
215
- run: uv sync
216
-
217
- - name: Build and test
218
- run: |
219
- uv build
220
- uv pip install dist/*.whl
221
- uv run python examples/example.py
222
-
223
- - name: Upload artifacts
224
- uses: actions/upload-artifact@v7
225
- with:
226
- name: dist
227
- path: dist/
@@ -1,37 +0,0 @@
1
- # Webapp impact — `feat/feature-reduction-wip`
2
-
3
- Working doc tracking changes in this branch that may affect
4
- [`classifier-toolkit-webapp`](https://github.com/qonto-private/classifier-toolkit-webapp).
5
- To be reported in the post-merge webapp PR, then **deleted from this repo before merge**.
6
-
7
- ## Webapp imports of `classifier_toolkit` (audited at commit 1)
8
-
9
- | Webapp file | Symbol imported |
10
- |---|---|
11
- | `app/eda_service.py` | `classifier_toolkit.eda.bivariate_analysis.BivariateAnalysis` |
12
- | `app/eda_service.py` | `classifier_toolkit.eda.univariate_analysis.UnivariateAnalysis` |
13
- | `app/eda_service.py` | `classifier_toolkit.eda.visualizations.Visualizations` |
14
- | `app/feature_selection_service.py` | `classifier_toolkit` feature selection methods (RFE, etc.) |
15
- | `app/model_training_service.py` | monkey-patches via `classifier_toolkit_patches` (tuner callbacks) |
16
- | `pyproject.toml` | pins `classifier_toolkit==0.2.2` |
17
-
18
- **None of the webapp imports touch `classifier_toolkit.feature_reduction`**, which does not exist on `master` yet.
19
-
20
- ## Expected impact of this PR
21
-
22
- This PR **adds** a new top-level package `classifier_toolkit.feature_reduction` and does **not** modify
23
- any existing module that the webapp imports.
24
-
25
- → **Expected breaking impact on the webapp: none.**
26
-
27
- The webapp will continue to install `classifier_toolkit==0.2.2` and is unaffected.
28
- A future webapp PR may opt to upgrade the pin and consume `FeatureReducer`.
29
-
30
- ## Running log of side-effects
31
-
32
- Add an entry below if a commit on this branch touches a symbol the webapp imports
33
- (rename, signature change, removal). Format:
34
-
35
- - `commit <sha>`: `<webapp file>` — symbol `<name>` changed (`<nature>`). Webapp fix: `<proposed fix>`.
36
-
37
- _None so far._