A set of tools to use the 'Professions et Catégories Socioprofessionnelles' system of INSEE (a French statistical agency).
Project description
INSEE PCS : Des outils pour utiliser les Professions et Catégories Socioprofessionnelles de l'INSEE
===================================================================================================
**INSEE-PCS** est un module Python permettant d'exploiter facilement les Professions et Catégories Socioprofessionnelles de l'INSEE (version 2003).
Plus d'informations sur les PCS peuvent être trouvées sur le site de l'INSEE : [Nomenclatures des professions et catégories socioprofessionnelles](https://insee.fr/fr/information/2406153).
**Ce code est testé uniquement avec Python 3. Les versions de la PCS antérieures à 2003 ne sont pas supportées.**
# Installation
Ce module est disponnible sur PyPi. Il nécessite le module `peewee` pour fonctionner.
$ pip3 install peewee insee-pcs
# Usage
```python3
import insee_pcs
# Trouver la PCS "1" du niveau 1.
insee_pcs.get_PCS(1, "1")
"<PCS '1' (level 1)>"
# Trouver la description de la PCS "382b" du niveau 4.
insee_pcs.get_PCS(4, "382b").description
"Architectes salariés"
```
Il est aussi possible d'itérer récursivement sur tous les enfants d'une PCS avec la méthode `iter_children()`. Cette méthode accepte un paramètre optionnel, `max_level`, permettant de définir un niveau maximum pour l'itération.
```python3
# Affiche récursivement la PCS "38" (niveau 2) et ses enfants.
pcs = insee_pcs.get_PCS(2, "32")
for p in pcs.iter_children():
print("{spaces}{code} : {description}...".format(spaces=' '*(p.level-2)*2, code=p.code, description=p.description[:20]))
"""
32 : Cadres de la fonctio...
33 : Cadres de la fonctio...
331a : Personnels de direct...
332a : Ingénieurs de l’État...
332b : Ingénieurs des colle...
333a : Magistrats...
333b : Inspecteurs et autre...
333c : Cadres de la Poste...
333d : Cadres administratif...
333e : Autres personnels ad...
333f : Personnels administr...
334a : Officiers des Armées...
335a : Personnes exerçant u...
34 : Professeurs, profess...
341a : Professeurs agrégés ...
341b : Chefs d’établissemen...
342a : Enseignants de l’ens...
342e : Chercheurs de la rec...
343a : Psychologues spécial...
344a : Médecins hospitalier...
344b : Médecins salariés no...
344c : Internes en médecine...
344d : Pharmaciens salariés...
35 : Professions de l’inf...
351a : Bibliothécaires, arc...
352a : Journalistes (y. c. ...
352b : Auteurs littéraires,...
353a : Directeurs de journa...
353b : Directeurs, responsa...
353c : Cadres artistiques e...
354a : Artistes plasticiens...
354b : Artistes+B493 de la ...
354c : Artistes dramatiques...
354d : Artistes de la danse...
354g : Professeurs d’art (h...
"""
# Même chose, en limitant l'itération au niveau 3.
pcs = get_PCS(1, "3")
for p in pcs.iter_children(max_level=3):
print("{spaces}{code} : {description}...".format(spaces=' '*(p.level-1)*2, code=p.code, description=p.description[:20]))
"""
3 : Cadres et profession...
31 : Professions libérale...
31 : Professions libérale...
32 : Cadres de la fonctio...
33 : Cadres de la fonctio...
34 : Professeurs, profess...
35 : Professions de l’inf...
36 : Cadres d’entreprise...
37 : Cadres administratif...
38 : Ingénieurs et cadres...
"""
```
La fonction `get_all_PCS_of_level()` prend un niveau (`int`) en paramètre et retourne toutes les PCS du niveau demandé dans un objet `SelectQuery` (convertible en liste).
```python3
# Trouver toutes les PCS de niveau 1. Retourne un objet `SelectQuery`.
print(list(get_all_PCS_of_level(1)))
[<PCS '1' (level 1)>, <PCS '2' (level 1)>, <PCS '3' (level 1)>, <PCS '4' (level 1)>, <PCS '5' (level 1)>, <PCS '6' (level 1)>, <PCS '7' (level 1)>, <PCS '8' (level 1)>]
```
L'objet `PCS` est un modèle Peewee classique, vous pouvez donc utiliser toutes les méthodes de Peewee dessus.
```python3
# Trouver toutes les PCS de niveau 4 dont la description contient "Éleveur".
print(list(PCS.select().where(PCS.level==4, PCS.description.contains("Éleveur"))))
[<PCS '111d' (level 4)>, <PCS '111e' (level 4)>, <PCS '121d' (level 4)>, <PCS '121e' (level 4)>, <PCS '131d' (level 4)>, <PCS '131e' (level 4)>]
```
Pour obtenir une aide détaillée hors-ligne, vous pouvez aussi faire `help(<object>)` (par exemple, `help(main_insee)`).
# Dépendances
Ce module nécessite `peewee` (disponnible avec `pip`).
# TODO
- Traduction ?
- Anciennes versions des PCS / CSP ?
# Licence
Ce module est distribué sous la licence AGPLv3, dont les termes sont disponnibles dans le fichier [LICENCE](LICENCE).
===================================================================================================
**INSEE-PCS** est un module Python permettant d'exploiter facilement les Professions et Catégories Socioprofessionnelles de l'INSEE (version 2003).
Plus d'informations sur les PCS peuvent être trouvées sur le site de l'INSEE : [Nomenclatures des professions et catégories socioprofessionnelles](https://insee.fr/fr/information/2406153).
**Ce code est testé uniquement avec Python 3. Les versions de la PCS antérieures à 2003 ne sont pas supportées.**
# Installation
Ce module est disponnible sur PyPi. Il nécessite le module `peewee` pour fonctionner.
$ pip3 install peewee insee-pcs
# Usage
```python3
import insee_pcs
# Trouver la PCS "1" du niveau 1.
insee_pcs.get_PCS(1, "1")
"<PCS '1' (level 1)>"
# Trouver la description de la PCS "382b" du niveau 4.
insee_pcs.get_PCS(4, "382b").description
"Architectes salariés"
```
Il est aussi possible d'itérer récursivement sur tous les enfants d'une PCS avec la méthode `iter_children()`. Cette méthode accepte un paramètre optionnel, `max_level`, permettant de définir un niveau maximum pour l'itération.
```python3
# Affiche récursivement la PCS "38" (niveau 2) et ses enfants.
pcs = insee_pcs.get_PCS(2, "32")
for p in pcs.iter_children():
print("{spaces}{code} : {description}...".format(spaces=' '*(p.level-2)*2, code=p.code, description=p.description[:20]))
"""
32 : Cadres de la fonctio...
33 : Cadres de la fonctio...
331a : Personnels de direct...
332a : Ingénieurs de l’État...
332b : Ingénieurs des colle...
333a : Magistrats...
333b : Inspecteurs et autre...
333c : Cadres de la Poste...
333d : Cadres administratif...
333e : Autres personnels ad...
333f : Personnels administr...
334a : Officiers des Armées...
335a : Personnes exerçant u...
34 : Professeurs, profess...
341a : Professeurs agrégés ...
341b : Chefs d’établissemen...
342a : Enseignants de l’ens...
342e : Chercheurs de la rec...
343a : Psychologues spécial...
344a : Médecins hospitalier...
344b : Médecins salariés no...
344c : Internes en médecine...
344d : Pharmaciens salariés...
35 : Professions de l’inf...
351a : Bibliothécaires, arc...
352a : Journalistes (y. c. ...
352b : Auteurs littéraires,...
353a : Directeurs de journa...
353b : Directeurs, responsa...
353c : Cadres artistiques e...
354a : Artistes plasticiens...
354b : Artistes+B493 de la ...
354c : Artistes dramatiques...
354d : Artistes de la danse...
354g : Professeurs d’art (h...
"""
# Même chose, en limitant l'itération au niveau 3.
pcs = get_PCS(1, "3")
for p in pcs.iter_children(max_level=3):
print("{spaces}{code} : {description}...".format(spaces=' '*(p.level-1)*2, code=p.code, description=p.description[:20]))
"""
3 : Cadres et profession...
31 : Professions libérale...
31 : Professions libérale...
32 : Cadres de la fonctio...
33 : Cadres de la fonctio...
34 : Professeurs, profess...
35 : Professions de l’inf...
36 : Cadres d’entreprise...
37 : Cadres administratif...
38 : Ingénieurs et cadres...
"""
```
La fonction `get_all_PCS_of_level()` prend un niveau (`int`) en paramètre et retourne toutes les PCS du niveau demandé dans un objet `SelectQuery` (convertible en liste).
```python3
# Trouver toutes les PCS de niveau 1. Retourne un objet `SelectQuery`.
print(list(get_all_PCS_of_level(1)))
[<PCS '1' (level 1)>, <PCS '2' (level 1)>, <PCS '3' (level 1)>, <PCS '4' (level 1)>, <PCS '5' (level 1)>, <PCS '6' (level 1)>, <PCS '7' (level 1)>, <PCS '8' (level 1)>]
```
L'objet `PCS` est un modèle Peewee classique, vous pouvez donc utiliser toutes les méthodes de Peewee dessus.
```python3
# Trouver toutes les PCS de niveau 4 dont la description contient "Éleveur".
print(list(PCS.select().where(PCS.level==4, PCS.description.contains("Éleveur"))))
[<PCS '111d' (level 4)>, <PCS '111e' (level 4)>, <PCS '121d' (level 4)>, <PCS '121e' (level 4)>, <PCS '131d' (level 4)>, <PCS '131e' (level 4)>]
```
Pour obtenir une aide détaillée hors-ligne, vous pouvez aussi faire `help(<object>)` (par exemple, `help(main_insee)`).
# Dépendances
Ce module nécessite `peewee` (disponnible avec `pip`).
# TODO
- Traduction ?
- Anciennes versions des PCS / CSP ?
# Licence
Ce module est distribué sous la licence AGPLv3, dont les termes sont disponnibles dans le fichier [LICENCE](LICENCE).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
insee_pcs-0.1.0-py3-none-any.whl
(36.1 kB
view hashes)
Close
Hashes for insee_pcs-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d44cff46eb8040b237f76bdc1dfe2fcae497a71a6da59d3b86163e3aadfec04a |
|
MD5 | 88c5d0c9e512f431cf54af6b08b6928d |
|
BLAKE2b-256 | e8244d69989990299d728df5ca61c3130ffc93df36d7fed92b7fcbf088f4a6ac |