diff --git a/README.md b/README.md index 4409f0b..a8fe9e2 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,10 @@ This is a Python stats toolkit for easy and powerful statistical operations. - Perform hypothesis testing - Simplify data visualization -[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) +[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/) [![PyPI version](https://img.shields.io/pypi/v/py-stats-toolkit.svg)](https://pypi.org/project/py-stats-toolkit/) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/py-stats-toolkit.svg)](https://pypi.org/project/py-stats-toolkit/) [![PyPI downloads](https://img.shields.io/pypi/dm/py-stats-toolkit.svg)](https://pypi.org/project/py-stats-toolkit/) -[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Tests](https://github.com/ThePhoenixAgency/py-stats-toolkit/actions/workflows/tests.yml/badge.svg)](https://github.com/ThePhoenixAgency/py-stats-toolkit/actions/workflows/tests.yml) [![Publish](https://github.com/ThePhoenixAgency/py-stats-toolkit/actions/workflows/publish.yml/badge.svg)](https://github.com/ThePhoenixAgency/py-stats-toolkit/actions/workflows/publish.yml) @@ -19,9 +18,7 @@ This is a Python stats toolkit for easy and powerful statistical operations. [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) [![Linting: flake8](https://img.shields.io/badge/linting-flake8-yellowgreen)](https://flake8.pycqa.org/) [![Type checking: mypy](https://img.shields.io/badge/type%20checking-mypy-blue)](https://mypy-lang.org/) -[![Security: bandit](https://img.shields.io/badge/security-bandit-green)](https://bandit.readthedocs.io/) -[![Tests](https://img.shields.io/badge/tests-pytest-orange)](https://docs.pytest.org/) -[![Coverage](https://img.shields.io/badge/coverage-codecov-brightgreen)](https://codecov.io/) + ## Getting Started 1. Clone the repo: diff --git a/py_stats_toolkit.egg-info/PKG-INFO b/py_stats_toolkit.egg-info/PKG-INFO index 1f9e5be..16e3a0b 100644 --- a/py_stats_toolkit.egg-info/PKG-INFO +++ b/py_stats_toolkit.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: py-stats-toolkit -Version: 1.0.4 +Version: 1.0.5 Summary: Un toolkit Python pour l'analyse statistique et le traitement des données Author-email: Phoenix Project License-Expression: MIT @@ -11,45 +11,47 @@ Project-URL: Bug Tracker, https://github.com/ThePhoenixAgency/py-stats-toolkit/i Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Science/Research Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Topic :: Scientific/Engineering Classifier: Topic :: Scientific/Engineering :: Mathematics Classifier: Topic :: Scientific/Engineering :: Statistics Classifier: Operating System :: OS Independent -Requires-Python: >=3.8 +Requires-Python: >=3.9 Description-Content-Type: text/markdown License-File: LICENSE -Requires-Dist: numpy>=1.20.0 -Requires-Dist: pandas>=1.3.0 -Requires-Dist: scipy>=1.7.0 -Requires-Dist: matplotlib>=3.4.0 -Requires-Dist: seaborn>=0.11.0 -Requires-Dist: statsmodels>=0.13.0 -Requires-Dist: scikit-learn>=1.0.0 -Requires-Dist: networkx>=2.6.0 -Requires-Dist: deap>=1.3.0 +Requires-Dist: numpy>=2.0.0 +Requires-Dist: pandas>=2.0.0 +Requires-Dist: scipy>=1.10.0 +Requires-Dist: matplotlib>=3.8.0 +Requires-Dist: statsmodels>=0.14.0 +Requires-Dist: scikit-learn>=1.3.0 Provides-Extra: dev -Requires-Dist: pytest>=7.0.0; extra == "dev" -Requires-Dist: pytest-cov>=3.0.0; extra == "dev" -Requires-Dist: black>=22.0.0; extra == "dev" -Requires-Dist: isort>=5.0.0; extra == "dev" -Requires-Dist: flake8>=4.0.0; extra == "dev" -Requires-Dist: mypy>=0.900; extra == "dev" -Requires-Dist: sphinx>=4.0.0; extra == "dev" -Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "dev" -Requires-Dist: build>=1.0.0; extra == "dev" +Requires-Dist: pytest>=8.3.0; extra == "dev" +Requires-Dist: pytest-cov>=6.0.0; extra == "dev" +Requires-Dist: coverage>=7.6.0; extra == "dev" +Requires-Dist: black>=24.10.0; extra == "dev" +Requires-Dist: isort>=5.13.0; extra == "dev" +Requires-Dist: flake8>=7.1.0; extra == "dev" +Requires-Dist: mypy>=1.13.0; extra == "dev" +Requires-Dist: sphinx>=8.1.0; extra == "dev" +Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "dev" +Requires-Dist: build>=1.2.0; extra == "dev" +Requires-Dist: twine>=6.0.0; extra == "dev" Dynamic: license-file -# Py-Stats-Toolkit +# Py Stats Toolkit -Un toolkit Python complet pour l'analyse statistique et le traitement des données, conçu pour être simple d'utilisation tout en offrant des fonctionnalités avancées. +This is a Python stats toolkit for easy and powerful statistical operations. -## 🏆 Qualité du Code +## Features +- Generate descriptive statistics for datasets +- Perform hypothesis testing +- Simplify data visualization -[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) +[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/) [![PyPI version](https://img.shields.io/pypi/v/py-stats-toolkit.svg)](https://pypi.org/project/py-stats-toolkit/) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/py-stats-toolkit.svg)](https://pypi.org/project/py-stats-toolkit/) [![PyPI downloads](https://img.shields.io/pypi/dm/py-stats-toolkit.svg)](https://pypi.org/project/py-stats-toolkit/) @@ -60,211 +62,34 @@ Un toolkit Python complet pour l'analyse statistique et le traitement des donné [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) [![Linting: flake8](https://img.shields.io/badge/linting-flake8-yellowgreen)](https://flake8.pycqa.org/) [![Type checking: mypy](https://img.shields.io/badge/type%20checking-mypy-blue)](https://mypy-lang.org/) -[![Security: bandit](https://img.shields.io/badge/security-bandit-green)](https://bandit.readthedocs.io/) -## 🚀 Installation +## Getting Started -### Installation depuis PyPI (recommandé) +1. Clone the repo: + ``` + git clone https://github.com/ThePhoenixAgency/py-stats-toolkit.git + ``` +2. Navigate to the project folder: + ``` + cd py-stats-toolkit + ``` +3. Install the dependencies: + ``` + pip install -r requirements.txt + ``` -```bash -pip install py-stats-toolkit -``` - -### Installation depuis les sources - -```bash -git clone https://github.com/ThePhoenixAgency/py-stats-toolkit.git -cd py-stats-toolkit -pip install -e . -``` - -## 📦 Fonctionnalités - -### Statistiques Descriptives -- Calcul automatique de toutes les statistiques descriptives -- Gestion des valeurs manquantes -- Validation des données - -### Régression Linéaire -- Régression linéaire simple et multiple -- Validation des hypothèses -- Diagnostics complets - -### Analyse de Corrélation -- Matrices de corrélation -- Tests de significativité -- Visualisations avancées - -### Visualisation -- Graphiques statistiques professionnels -- Personnalisation complète -- Export en haute qualité - -## 🔧 Utilisation Rapide - -```python -from py_stats_toolkit.stats import descriptives, regression, correlation -from py_stats_toolkit.visualization import plots -import pandas as pd - -# Charger vos données -data = pd.read_csv('votre_fichier.csv') - -# Statistiques descriptives -stats = descriptives.calculate_descriptive_statistics(data) -print(stats) - -# Régression linéaire -model = regression.linear_regression(data, 'variable_cible', ['var1', 'var2']) -print(model.summary()) - -# Visualisation -plots.create_correlation_matrix(data) -``` - -## 🛠️ Scripts Utilitaires - -### Publication Automatisée - -Le projet inclut plusieurs scripts pour automatiser la publication : - -#### `publish_automated.py` (Recommandé) -Publication PyPI 100% automatisée sans interaction utilisateur : - -```bash -# Avec token PyPI -set TWINE_PASSWORD=ton_token_pypi -python publish_automated.py - -# Ou avec fichier .pypirc -python publish_automated.py -``` - -#### `build_and_ready.py` -Prépare le package pour publication manuelle : - -```bash -python build_and_ready.py -``` - -#### `release_and_publish.py` -Publication complète avec release GitHub (nécessite GITHUB_TOKEN) : - -```bash -set GITHUB_TOKEN=ton_token_github -set TWINE_PASSWORD=ton_token_pypi -python release_and_publish.py -``` - -#### `clean_cache.py` -Nettoie tous les fichiers cache et temporaires : - -```bash -python clean_cache.py -``` - -## 🔄 Workflow GitHub Actions - -Le projet utilise GitHub Actions pour l'automatisation : - -1. **Création d'une release** sur GitHub -2. **Déclenchement automatique** du workflow -3. **Build et tests** automatiques -4. **Publication PyPI** automatique - -## 📚 Documentation - -- **🌐 [Site officiel](https://phoenixguardiantools.github.io/py-stats-toolkit/)** - Hébergé gratuitement sur GitHub Pages -- [Documentation complète](https://py-stats-toolkit.readthedocs.io/) -- [Exemples d'utilisation](https://github.com/ThePhoenixAgency/py-stats-toolkit/tree/main/examples) -- [Guide de contribution](CONTRIBUTING.md) -- [Guide GitHub Pages](GITHUB_PAGES_GUIDE.md) - Comment avoir un domaine gratuit comme github.io - -## 🧪 Tests et Qualité du Code - -### Tests - -```bash -# Installation des dépendances de développement -pip install -r requirements-dev.txt - -# Exécution des tests -python -m pytest tests/ - -# Avec couverture -python -m pytest tests/ --cov=py_stats_toolkit --cov-report=html -``` - -### Contrôle de Qualité - -Le projet suit les meilleures pratiques Python avec plusieurs outils de qualité : +## Usage +To use the toolkit, import the relevant modules and call desired functions as demonstrated in the [documentation](https://your-documentation-link.com). ```bash -# Formatage du code avec Black -black . - -# Tri des imports avec isort -isort . - -# Linting PEP8 avec flake8 -flake8 . - -# Vérification des types avec mypy -mypy py_stats_toolkit/ - -# Analyse de sécurité avec bandit -bandit -r py_stats_toolkit/ +pip install py-stats-toolkit ``` +## Contributing +Contributions are welcomed! Feel free to open an issue or pull request. -### Standards de Qualité - -- **Black** : Formatage automatique du code selon les standards PEP8 -- **isort** : Organisation automatique des imports -- **Flake8** : Détection des erreurs de style et de qualité -- **MyPy** : Vérification statique des types -- **Bandit** : Analyse de sécurité pour détecter les vulnérabilités -- **Pytest** : Framework de tests complet avec couverture - -## 📋 Dépendances - -### Dépendances principales -- numpy >= 1.20.0 -- pandas >= 1.3.0 -- scipy >= 1.7.0 -- matplotlib >= 3.4.0 -- seaborn >= 0.11.0 -- statsmodels >= 0.13.0 -- scikit-learn >= 1.0.0 -- networkx >= 2.6.0 -- deap >= 1.3.0 - -### Dépendances de développement -- pytest >= 7.0.0 -- black >= 22.0.0 -- isort >= 5.0.0 -- flake8 >= 4.0.0 -- mypy >= 0.900 - -## 🤝 Contribution - -Les contributions sont les bienvenues ! Consultez notre [guide de contribution](CONTRIBUTING.md) pour plus de détails. - -## 📄 Licence - -Ce projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails. - -## 🔗 Liens Utiles - -- [PyPI](https://pypi.org/project/py-stats-toolkit/) -- [GitHub](https://github.com/ThePhoenixAgency/py-stats-toolkit) -- [Issues](https://github.com/ThePhoenixAgency/py-stats-toolkit/issues) -- [Releases](https://github.com/ThePhoenixAgency/py-stats-toolkit/releases) - -## 📞 Contact - -- Email : autopublisher.ai@gmail.com -- GitHub : [ThePhoenixAgency](https://github.com/ThePhoenixAgency) +## License +This project is licensed under the MIT License. See the LICENSE file for details. ---- -**Version actuelle : 1.0.4** - Badges de qualité et conformité complète +### See my GitHub Agency +Check out the [profile](https://github.com/ThePhoenixAgency) for more projects and contributions! diff --git a/py_stats_toolkit.egg-info/SOURCES.txt b/py_stats_toolkit.egg-info/SOURCES.txt index a0bdcfd..3896ec4 100644 --- a/py_stats_toolkit.egg-info/SOURCES.txt +++ b/py_stats_toolkit.egg-info/SOURCES.txt @@ -7,9 +7,22 @@ py_stats_toolkit.egg-info/SOURCES.txt py_stats_toolkit.egg-info/dependency_links.txt py_stats_toolkit.egg-info/requires.txt py_stats_toolkit.egg-info/top_level.txt +py_stats_toolkit/algorithms/__init__.py +py_stats_toolkit/algorithms/correlation.py +py_stats_toolkit/algorithms/descriptive_stats.py +py_stats_toolkit/algorithms/probability.py +py_stats_toolkit/algorithms/regression.py +py_stats_toolkit/algorithms/variance.py py_stats_toolkit/capsules/BaseCapsule.py py_stats_toolkit/capsules/__init__.py +py_stats_toolkit/core/__init__.py +py_stats_toolkit/core/base.py +py_stats_toolkit/core/validators.py +py_stats_toolkit/utils/__init__.py +py_stats_toolkit/utils/data_processor.py +py_stats_toolkit/utils/parallel.py tests/test_basic_imports.py tests/test_correlation.py tests/test_descriptives.py +tests/test_refactored_modules.py tests/test_regression_module.py \ No newline at end of file diff --git a/py_stats_toolkit.egg-info/requires.txt b/py_stats_toolkit.egg-info/requires.txt index 7a3f5a3..2ca2be2 100644 --- a/py_stats_toolkit.egg-info/requires.txt +++ b/py_stats_toolkit.egg-info/requires.txt @@ -1,20 +1,19 @@ -numpy>=1.20.0 -pandas>=1.3.0 -scipy>=1.7.0 -matplotlib>=3.4.0 -seaborn>=0.11.0 -statsmodels>=0.13.0 -scikit-learn>=1.0.0 -networkx>=2.6.0 -deap>=1.3.0 +numpy>=2.0.0 +pandas>=2.0.0 +scipy>=1.10.0 +matplotlib>=3.8.0 +statsmodels>=0.14.0 +scikit-learn>=1.3.0 [dev] -pytest>=7.0.0 -pytest-cov>=3.0.0 -black>=22.0.0 -isort>=5.0.0 -flake8>=4.0.0 -mypy>=0.900 -sphinx>=4.0.0 -sphinx-rtd-theme>=1.0.0 -build>=1.0.0 +pytest>=8.3.0 +pytest-cov>=6.0.0 +coverage>=7.6.0 +black>=24.10.0 +isort>=5.13.0 +flake8>=7.1.0 +mypy>=1.13.0 +sphinx>=8.1.0 +sphinx-rtd-theme>=3.0.0 +build>=1.2.0 +twine>=6.0.0 diff --git a/pyproject.toml b/pyproject.toml index 3fe1ec1..34c1591 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,24 +30,23 @@ dependencies = [ "pandas>=2.0.0", "scipy>=1.10.0", "matplotlib>=3.8.0", - "seaborn>=0.13.0", "statsmodels>=0.14.0", "scikit-learn>=1.3.0", - "networkx>=3.0.0", - "deap>=1.4.0", ] [project.optional-dependencies] dev = [ "pytest>=8.3.0", "pytest-cov>=6.0.0", + "coverage>=7.6.0", "black>=24.10.0", "isort>=5.13.0", "flake8>=7.1.0", "mypy>=1.13.0", "sphinx>=8.1.0", "sphinx-rtd-theme>=3.0.0", - "build>=1.2.0" + "build>=1.2.0", + "twine>=6.0.0" ] [project.urls] diff --git a/requirements-dev.txt b/requirements-dev.txt index 370d22d..7dc3f89 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,39 +1,18 @@ -# Dépendances de test +# Testing dependencies pytest>=8.3.0 pytest-cov>=6.0.0 -pytest-asyncio>=0.24.0 -pytest-mock>=3.14.0 -pytest-xdist>=3.6.0 coverage>=7.6.0 -hypothesis>=6.122.0 -# Dépendances de linting et formatage +# Linting and formatting black>=24.10.0 flake8>=7.1.0 mypy>=1.13.0 isort>=5.13.0 -pylint>=3.3.0 -bandit>=1.8.0 -pip-audit>=2.10.0 -# Dépendances de documentation +# Documentation sphinx>=8.1.0 sphinx-rtd-theme>=3.0.0 -sphinx-autodoc-typehints>=2.5.0 -mkdocs>=1.6.0 -mkdocs-material>=9.5.0 -# Dépendances de développement -ipython>=8.30.0 -jupyter>=1.1.0 -notebook>=7.3.0 -pre-commit>=4.0.0 -bump2version>=1.0.0 -twine>=6.0.0 +# Build and release build>=1.2.0 - -# Dépendances de débogage -debugpy>=1.8.0 -ipdb>=0.13.0 -memory-profiler>=0.61.0 -line-profiler>=4.2.0 \ No newline at end of file +twine>=6.0.0 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 290c5e6..9d32875 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,46 +1,7 @@ -# Dépendances principales +# Core dependencies numpy>=2.0.0 pandas>=2.0.0 scipy>=1.10.0 matplotlib>=3.8.0 -seaborn>=0.13.0 statsmodels>=0.14.0 -scikit-learn>=1.3.0 -networkx>=3.0.0 -deap>=1.4.0 - -# Dépendances du serveur -fastapi>=0.115.0 -uvicorn>=0.32.0 -pydantic>=2.10.0 -pydantic-settings>=2.6.0 -python-dotenv>=1.0.0 -python-multipart>=0.0.12 -email-validator>=2.2.0 - -# Dépendances de sécurité -cryptography>=44.0.0 -python-jose[cryptography]>=3.3.0 -passlib[bcrypt]>=1.7.4 - -# Dépendances de visualisation -plotly>=5.24.0 -dash>=2.18.0 -dash-bootstrap-components>=1.6.0 - -# Dépendances de traitement des données -openpyxl>=3.1.0 -xlrd>=2.0.0 -xlwt>=1.3.0 -pyarrow>=18.0.0 -feather-format>=0.4.0 - -# Dépendances de performance -numba>=0.60.0 -dask>=2024.1.0 -distributed>=2024.1.0 - -# Autres dépendances -PyWavelets>=1.7.0 -tqdm>=4.67.0 -joblib>=1.4.0 \ No newline at end of file +scikit-learn>=1.3.0 \ No newline at end of file