semvec/pypi-packages huggingface dataset:
pygeom 0.0.14
Python Package for Geometry
Requires Python: >=3.10

# pygeom

Geometry Definition and Calculation Package for Python

Contains:

1. 2D and 3D vectors for vector dot products using "*" and vector cross products using "**".
2. 2D and 3D cubic splines for calculating the various directions and curvatures at every point.
3. 2D and 3D transformations and coordinate systems for transforming vectors and points.

Vector Example Code:

#
``` python
# Import Vector Class
from pygeom.geom3d import Vector

# Vector object creation
vec1 = Vector(2.0, 3.0, 1.0)
print(f'vec1 = {vec1:g}')

# Multiply vector by a scalar
vec2 = 2*vec1
print(f'vec2 = {vec2:g}')

# Vector attributes are x, y, and z
vec3 = Vector(vec2.y, vec2.z, vec2.z)
print(f'vec3 = {vec3:f}')

# Vector cross product
vec4 = vec1.cross(vec2)
print(f'vec4 = {vec4:g}')

# Vector cross product
vec5 = vec1.cross(vec3)
print(f'vec5 = {vec5:g}')

# Vector dot product
scal = vec1.dot(vec2)
print(f'scal = {scal:g}')

# Get vector magnitude
mag = vec5.return_magnitude()
print(f'mag = {mag:g}')

# Get the unit vector
uvec = vec5.to_unit()
print(f'uvec = {uvec:f}')
```

Vector Example Output:
```
vec1 = <2, 3, 1>
vec2 = <4, 6, 2>
vec3 = <6.000000, 2.000000, 2.000000>
vec4 = <0, 0, 0>
vec5 = <4, 2, -14>
scal = 28
mag = 14.6969
uvec = <0.27217, 0.13608, -0.95258>
```
ghweekly 0.1.5
Visualize weekly GitHub commit activity across repositories.
Requires Python: >=3.10

# gh-weekly-commits

[![CI](https://github.com/bhimrazy/gh-weekly-commits/actions/workflows/ci.yml/badge.svg)](https://github.com/bhimrazy/gh-weekly-commits/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/bhimrazy/gh-weekly-commits/graph/badge.svg)](https://codecov.io/gh/bhimrazy/gh-weekly-commits)
[![license](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/bhimrazy/gh-weekly-commits/blob/main/LICENSE)

📊 Visualize your weekly GitHub contributions across multiple repositories.

## Features
- Fetch weekly commit data for a GitHub user across multiple repositories.
- Visualize the data as a stacked bar chart.
- CLI support for easy usage.

## Installation

This project uses [uv](https://astral.sh/uv) for fast Python dependency management.

1. Install uv (if not already installed):

    ```bash
    curl -Ls https://astral.sh/uv/install.sh | sh
    ```

2. Install all dependencies:

    ```bash
    uv sync
    ```

## Usage

### CLI

```bash
ghweekly --username <your-username> \
         --repos org/repo1 org/repo2 \
         --start 2025-01-01 \
         --plot
```

### Script

Edit `scripts/plot_commits.py` to set your GitHub username and repository list, then run:

```bash
python scripts/plot_commits.py
```

## Weekly Commits Visualization

The latest weekly commits visualization is updated daily and can be found below:

![Weekly Commits](https://raw.githubusercontent.com/bhimrazy/gh-weekly-commits/refs/heads/main/weekly_commits.png)

## Development

### Run Tests

```bash
uv pip install pytest
pytest tests/
```

## License

MIT
pystdatm 0.2.1
Python Package for Standard Atmosphere
Requires Python: >=3.10

# pystdatm

## Python Package for Standard Atmosphere

The set of functions that follow International Standard Atmosphere model.

*Note*: Only SI units are supported.

Sample Code:
``` python
from pystdatm import (density, geometric_altitude, pressure,
                      speed_of_sound, temperature, viscosity)

alt = 14000.0 # metres above sea level
print(f'Altitude = {alt:.0f} m\n')

altz = geometric_altitude(alt)
print(f'Geometric Altitude = {altz:.0f} m\n')

temp = temperature(alt)
print(f'Air Temperature = {temp:.2f} K\n')

pres = pressure(alt)
print(f'Air Pressure = {pres:.6g} Pa\n')

rho = density(alt)
print(f'Air Density = {rho:.4f} kg/m**3\n')

mu = viscosity(temp)
print(f'Air Viscosity = {mu:.5g} Pa.s\n')

a = speed_of_sound(temp)
print(f'Speed of Sound = {a:.1f} m/s\n')

# Example of ISA Properties at Altitude with Temperature Deviation
deviation = 10.0 # K

rho_dev = density(alt, deviation=deviation)
print(f'Density ISA+{deviation:.0f} = {rho_dev:.4f} kg/m**3\n')
```

Sample Output:
```
Altitude = 14000 m

Geometric Altitude = 14031 m

Air Temperature = 216.65 K

Air Pressure = 14101.8 Pa

Air Density = 0.2268 kg/m**3

Air Viscosity = 1.7826e-05 Pa.s

Speed of Sound = 339.5 m/s

Density ISA+10 = 0.2167 kg/m**3
```
echemdbconverters 0.4.1
echemdb-converters is a Python library and command line tool to load csv data and convert those into frictionless Data Packages.
Requires Python: >=3.10

# echemdb-converters

Convert raw data into echemdb data packages

## Installation

This package is available on [PiPY](https://pypi.org/project/echemdbconverters/) and can be installed with pip:

```sh .noeval
pip install echemdbconverters
```
gc7-008 1.0.0
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```
bareASGI 5.0.0a4
A lightweight ASGI framework
Requires Python: >=3.12
Keywords: asgi, web, framework, asyncio, http

# bareASGI

A lightweight Python [ASGI](user-guide/asgi) web server framework
(read the [docs](https://rob-blackbourn.github.io/bareASGI/)).

## Overview

This is a _bare_ ASGI web server framework. The goal is to provide
a minimal implementation, with other facilities (serving static files, CORS,
sessions, etc.) being implemented by optional packages.

The framework is targeted at micro-services which require a light footprint
(in a container for example), or as a base for larger frameworks.

Python 3.8+ is required.

## Optional Packages

- [bareASGI-cors](https://github.com/rob-blackbourn/bareASGI-cors) for cross origin resource sharing,
- [bareASGI-static](https://github.com/rob-blackbourn/bareASGI-static) for serving static files,
- [bareASGI-jinja2](https://github.com/rob-blackbourn/bareASGI-jinja2) for [Jinja2](https://github.com/pallets/jinja) template rendering,
- [bareASGI-graphql-next](https://github.com/rob-blackbourn/bareASGI-graphql-next) for [GraphQL](https://github.com/graphql-python/graphql-core) and [graphene](https://github.com/graphql-python/graphene),
- [bareASGI-rest](https://github.com/rob-blackbourn/bareASGI-rest) for REST support,
- [bareASGI-prometheus](https://github.com/rob-blackbourn/bareASGI-prometheus) for [prometheus](https://prometheus.io/) metrics,
- [bareASGI-session](https://github.com/rob-blackbourn/bareASGI-session) for sessions.

## Functionality

The framework provides the basic functionality required for developing a web
application, including:

- Http,
- WebSockets,
- Routing,
- Lifecycle,
- Middleware

## Simple Server

Here is a simple server with a request handler that returns some text.

```python
import uvicorn
from bareasgi import Application, HttpRequest, HttpResponse, text_writer

async def example_handler(request: HttpRequest) -> HttpResponse:
    return HttpResponse(
        200,
        [(b'content-type', b'text/plain')],
        text_writer('This is not a test')
    )

app = Application()
app.http_router.add({'GET'}, '/', example_handler)

uvicorn.run(app, port=9009)
```
gc7-007 1.0.0
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```
nt-PyTgram-bot 0.1.0
Python Telegram Bot
Requires Python: >=3.11

# PyTgram_bot

# Updater -- telegram serviriga borib bir qancha updateni olib keladi qisqa qilib aytganda oxirgi updatelarni olib keladi

# Dispatcher -- updater ustida amal bajaradi

# Handler -- xabar kelsa hal qilish 

# Types - Message, MyChatMember

# nt_PyTgram_bot 

`nt_PyTgram_bot` вЂ” bu `python-telegram-bot` kutubxonasi asosida Telegram botlar yaratishni soddalashtirish uchun yozilgan modul.

## Xususiyatlar

- Telegram API bilan oddiy interfeys
- Botga xabarlar va komandalarni yozish oson
- Moslashtirilgan `Updater`, `Handler` funksiyalari

## O'rnatish

```bash
pip install nt_PyTgram_bot

##  Foydalanish misoli

```python
from PyTgram_bot.updater import Updater
from PyTgram_bot.handler import MessageHandler
from PyTgram_bot.message_types import Update
import requests
from config import TOKEN

def handle_message(update: Update):
    chat_id = update.message['from']['id']
    text = update.message['text']

    requests.get(
        url=f'https://api.telegram.org/bot{TOKEN}/sendMessage',
        params={
            'chat_id': chat_id,
            'text': f"Siz yubordingiz: {text}"
        }
    )

updater = Updater(TOKEN)
updater.dispatcher.add_handler(MessageHandler(handle_message))
updater.start_polling()
gc7-uuu7 1.0.0
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```
gc7-uuu6 1.0.0
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```
gc7-uuu5 1.0.0
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```
ufcscraper 1.1.0
A data scraper for UFC stats and odds.
Requires Python: <4,>=3.10

.. title:: introduction

============
UFC Scraper
============

.. image:: https://github.com/balaustrada/ufcscraper/actions/workflows/python--app.yml/badge.svg
   :target: https://github.com/balaustrada/ufcscraper/actions/workflows/python--app.yml

.. image:: https://readthedocs.org/projects/ufc-scraper/badge/?version=latest
   :target: https://ufc-scraper.readthedocs.io/en/latest/

.. image:: https://coveralls.io/repos/github/balaustrada/ufcscraper/badge.svg?branch=main
    :target: https://coveralls.io/github/balaustrada/ufcscraper?branch=main

.. image:: https://github.com/balaustrada/ufcscraper/actions/workflows/mypy.yml/badge.svg
   :target: https://github.com/balaustrada/ufcscraper/actions/workflows/mypy.yml

This project is a data scraper designed to collect and process fight statistics and betting odds for UFC events. It is composed of two parts:

1. **Scraping UFC Statistics**: Data from events, fights, and fighters is scraped from `UFC stats <http://ufcstats.com/>`_ and stored in CSV format.

2. **Scraping Betting Odds**: Betting odds for UFC fights are scraped from `BestFightOdds <https://bestifghtodds.com/>`_ and matched to the correct fighters.

The data model for the UFC statistics part can be found in `UFC statistics model <tables/ufcstats_tables.html>`_ while the one for BestFightOdds odds can be found in `BestFightOdds model <tables/bestfightodds_tables.html>`_.

Installation
==============

After cloning the environment:

.. code-block:: shell

    git clone https://github.com/balaustrada/ufcscraper.git

The code can be easily installed through participants

.. code-block:: shell
    
    pip install .


Usage
======

Once installed, there are two entry points to be used for scraping data:

* ``ufcscraper_scrape_ufcstats_data``: Scrape information from UFC stats.
* ``ufcscraper_scrape_bestfightodds_data``: Scrape information from BestFightOdds.

Credits
========

The methods for scraping UFC stats data are derived from the ones in `https://github.com/remypereira99/UFC-Web-Scraping <https://github.com/remypereira99/UFC-Web-Scraping>`_.

Disclaimer
===========

This repository is for educational purposes only. The author does not promote, encourage, support, or excite any illegal activity or hacking without written permission. The author and this repository are not responsible for any misuse of the information provided.

The software and scripts provided in this repository should only be used for educational purposes. The author cannot be held responsible for any misuse by users.

The author is not responsible for any direct or indirect damage caused due to the use of the code provided in this repository. All the information provided here is for educational purposes only.
gc7-uuu4 1.0.0
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```
gc7-uuu3 1.0.2
Un module avec plein d'outils utiles pour devs en PyMoX (PY-thon - MO-jo - Flet-X)
Requires Python: >=3.10

# PyMoX - GC7

Trousse à outils utiles pour devs en PyMoX

---

## Rapide mémo

```bash
py -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt

py -m build
twine check dist/*  --verbose
twine upload dist/* --verbose

git log --oneline

semantic-release version
semantic-release version --print

semantic-release publish

semantic-release --noop version
Cela te dira si une version serait générée.

semantic-release version --commit --tag --no-push

Cela va :
Lire les commits
Calculer la prochaine version (ex: 0.2.0)
Modifier __version__ dans gc7/__init__.py
Créer un commit et un tag localement

Remove-Item -Recurse -Force dist, src/gc7/gc7.egg-info

git commit --allow-empty -m "feat: add dummy feature for version bump"
git commit --allow-empty -m "fix: déclenchement de la release 1.0.1" 
git push origin main

voir conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

En cas de volonté de revenir sur une version précédente (Problème avec PyPI: Interdit de reculer):
git revert <hash du commit> (pour ramener la main du dépôt GH)
dans le __ini__.py, mettre : __version__='x.y.z' (> au dernier de PyPI)
refaire le build + renvoi:
py -m build    
twine upload dist/*

Désinstaller tous les packages de l'env global :
pip freeze | ForEach-Object { pip uninstall -y $_ }

# 1. Crée une branche temporaire pour garder les fichiers
git checkout --orphan temp_branch

# 2. Ajoute tous les fichiers à cette nouvelle branche
git add .

# 3. Fais un commit initial
git commit -m "Initial commit"

# 4. Supprime l'ancienne branche main
git branch -D main

# 5. Renomme la branche temporaire en main
git branch -m main

# 6. Force le push vers GitHub (⚠️ cela écrase l’historique distant)
git push -f origin main


```