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).
Release files for insee-pcs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| insee_pcs-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / insee_pcs-0.1.0-py3-none-any.whl
| Download URL | insee_pcs-0.1.0-py3-none-any.whl |
|---|---|
| Size | 36.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d44cff46eb8040b237f76bdc1dfe2fcae497a71a6da59d3b86163e3aadfec04a
|
|
BLAKE2b-256 checksum How to use checksums |
e8244d69989990299d728df5ca61c3130ffc93df36d7fed92b7fcbf088f4a6ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |