This is a demo to push a package on PyPi

## Python project
Présentation des différents fichiers présents

## Choose your distribution
on peut choisir entre distribute, setuptools, distutils ou Distutils2.
Seule solution passe partout pour le moment c’est setuptools !

## setup.py

## Make your Package "user friendly"
- __init__.py

The __init__.py files are required to make Python treat the directories as containing packages; 
this is done to prevent directories with a common name, such as string, from unintentionally hiding 
valid modules that occur later on the module search path. 
In the simplest case, __init__.py can just be an empty file, but it can also execute initialization 
code for the package or set the __all__ variable, described later.

- __version__

- __all__

- easy import functions

## Test on local environment

- pipdeptree

$ python setup.py install

## Push on PyPi

- Make sure you have the latest versions of setuptools and wheel installed:

    $ python3 -m pip install --user --upgrade setuptools wheel

- Generating distribution archives

    $ python3 setup.py sdist bdist_wheel

- Twine is a utility for interacting with PyPI, that offers a secure replacement for setup.py upload.	
    
    $ python3 -m pip install --user --upgrade twine

- upload all of the archives under dist:

 	$ twine upload --repository-url https://test.pypi.org/legacy/ dist/*
	
## Installing new uploaded package

python3 -m pip install --index-url https://test.pypi.org/simple/ welovenad

## Ressources

##### Getting started / simple project
> https://packaging.python.org/tutorials/packaging-projects/

##### Building and Distributing Packages with Setuptools
> https://setuptools.readthedocs.io/en/latest/setuptools.html

##### Packaging Python Projects
> https://packaging.python.org/guides/distributing-packages-using-setuptools/

##### Repository BJC 
> https://github.com/BenJoyenConseil/pybbl