===================================================================================================
**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).
Metadata
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 |
Security for insee-pcs 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.