Metadata-Version: 2.1
Name: epflldap
Version: 0.2.4
Summary: Ce module permet de d'analyser les données d'LDAP à l'EPFL
Home-page: UNKNOWN
Author: Raphaël Rey
Author-email: raphael.rey@epfl.ch
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: pandas
Requires-Dist: ldap3

# epflldap

## Installation
`pip install dist/epflldap-<version>-py3-none-any.whl`

## Build new version
`python setup.py bdist_wheel`

## Basic usages

### 1. Get and save locally the data of EPFL Ldap
```python
import epflldap
data = epflldap.db()
data.to_pickle()
```
This will create locally a `ldap_epfl.pickle` file.

To load the local data:
```python
import epflldap
data = epflldap.db(read_from_pickle=True)
```

### 2. Get users data only
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
```
You will get a `Users` object.

### 3. Filter users data

#### Filter by group
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
users_filtered = users.filter_by_group('webmasters')
```
You will get an other `Users` object with only the filtered data. Available
groups are here: https://groups.epfl.ch/

#### Filter by status
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
users_filtered = users.filter_by_group('webmasters')
```
Les status possibles sont les suivants:
* `Personnel`
* `Etudiant`
* `HÃ´te`
* `Hors EPFL`

Certaines entrÃ©es dans Ldap n'ont pas de status.

#### Filter by unit
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
users_filtered = users.filter_by_unit('SISB')
```
Cette requÃªte va retourner tous les collaborateurs du SISB avec y compris les
assistants Ã©tudiants.

#### Filter by sciper
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
users_filtered = users.filter_by_sciper(['sciper1', 'sciper2'])
```
Cette requÃªte permet de filtrer une liste d'utilisateurs en fonction d'une
liste de scipers.

In order to get information about a specific user you can:
```python
import epflldap
epflldap.db(read_from_pickle=True)
    .get_users()
    .filter_by_sciper(['sciper1'])
    .data[0]
    .get_info()
```


### 4. Get all the email addresses of a `Users` object
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
users_filtered = users.filter_by_group('webmasters')
users_filtered.get_emails()
```
You will get all the email addresses of the group 'webmaster'. If you want a txt
file, you can add an argument:
```python
users.get_emails(output='addresses.txt')
```

### 5. Get Excel file with personal information data
```python
import epflldap
users = epflldap.db(read_from_pickle=True).get_users()
users_filtered = users.filter_by_group('webmasters')
users_filtered.to_excel(webmasters.xlsx)
```
This will create a xlsx file with personal information about the users.


