Metadata-Version: 2.1
Name: wedge-lib
Version: 3.1.2
Summary: Wedge library for django application
Home-page: https://github.com/Wedge-Digital/w
Author-email: francois.schneider@wedge-digital.com
License: MIT
Platform: UNKNOWN
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: arrow (>=0.16)
Requires-Dist: Django (>=3.1)
Requires-Dist: djangorestframework (>=3.12.4)
Requires-Dist: djangorestframework-api-key (>=2.0.0)
Requires-Dist: factory-boy (>=3.0)
Requires-Dist: openpyxl (>=3.0)
Requires-Dist: python-keycloak (>=0.24.0)
Requires-Dist: PyYAML (>=5.3)
Requires-Dist: requests (>=2.24)
Requires-Dist: serpy (>=0.3)
Requires-Dist: validators (>=0.18)
Requires-Dist: var-dump (>=1.2)
Requires-Dist: WeasyPrint (>=52.5)
Requires-Dist: pyzstd (>=0.15.0)
Requires-Dist: cryptography (>=36.0.2)
Requires-Dist: pandas (>=1.4.2)
Requires-Dist: mergedeep (>=1.3.4)
Requires-Dist: boto3 (>=1.26.141)
Requires-Dist: botocore (>=1.29.141)
Requires-Dist: moto (>=4.1.10)

# Wedge Library

## Démarrage rapide

```bash
$ pip install wedge-lib
```

### Mode maintenance

#### Middleware

```python
MIDDLEWARE=[
    "w.drf.middlewares.maintenance_mode_middleware.MaintenanceModeMiddleware",
],
```


#### Command

Ajouter la commande maintenance_mode :

```python
from w.django.commands.abstract_maintenance_mode_command import (
    AbstractMaintenanceModeCommand,
)


class Command(AbstractMaintenanceModeCommand):
    pass
```

Utilisation :

```bash
$ python manage.py maintenance_mode <on/off>
```

### Configuration pour certains services

#### MailService
TBD
#### GoogleMapService
TBD
#### YousignService
TBD

## Development

### Installation

```bash
$ pipenv sync --dev
```

### Update dependencies

```bash
$ pipenv update --dev
```

### Run test

```bash
$ pytest
```

### En cas d'ajout d'une librairie
Afin qu'elle soit également installée sur cs_back, il faut ajouter une ligne dans setup.cfg, sous la partie "install_requires ="

Des variables d'environnement doivent être configurées sur Pycharm:
- Cliquez sur Edit configurations en haut à droite de votre éditeur
- Edit configurations templates...
- Python tests - pytest
- Cliquez sur environnement variables et ajouter les api key correspondant à :
  - GOOGLE_MAP_SECRET
  - GOOGLE_MAP_API_KEY
- Les valeurs de ces variables peuvent être trouvées sur les secrets du repo ou à Eloïse

### Before commit

Pour éviter de faire échouer le CI, lancer la commande:

```bash
$ ./before_commit.zsh
```

### Publier manuellement sur PyPI

Après avoir committer et pousser:

1. tagguer une version dans GitHub.
2. mettre à jour la version dans le fichier `setup.cfg` avec le tag créé.
3. créer le package
    ```bash
    $ rm -rf build dist wedge_lib.egg-info
    $ WEDGELIB_VERSION=<version> python setup.py sdist bdist_wheel
    ```
4. mettre à jour sur TestPypi
    ```bash
    $ twine upload --repository testpypi dist/*
    ```
5. Si tout est ok, mettre à jour sur Pypi
    ```bash
    $ twine upload dist/*
    ```

### Utiliser W en mode dev depuis un autre projet (ex: csback)

Supprimer w du projet, ensuite l'installer à partir du chemin local du projet w:
```bash
pipenv uninstall wedge-lib && pipenv install <Absolute path du projet w local>
```

Après une nouvelle release de w, utiliser la version officielle :
```bash
pipenv uninstall wedge-lib && pipenv install wedge-lib
```






