{"format":1,"api":2,"id":"fr.arcanescookie.scriptorium.lang.python","version":"1.0.0","category":"languages","author":"Les Arcanes de Cookie","color":"#3776ab","name":{"fr":"Python","en":"Python"},"description":{"fr":"Extraits Python : fonctions, classes, dataclass, with open, compréhensions, f-strings, argparse, async, lecture/écriture JSON. Modèle de script.","en":"Python snippets: functions, classes, dataclass, with open, comprehensions, f-strings, argparse, async, JSON read/write. Script template."},"contributes":{"snippets":[{"language":"python","items":[{"prefix":"def","label":"Fonction","body":"def ${1:nom}(${2}):\n\t${3:pass}"},{"prefix":"class","label":"Classe","body":"class ${1:Nom}:\n\tdef __init__(self${2}):\n\t\t${3:pass}"},{"prefix":"dataclass","label":"Dataclass","body":"from dataclasses import dataclass\n\n@dataclass\nclass ${1:Nom}:\n\t${2:champ}: ${3:str}"},{"prefix":"main","label":"Point d’entrée","body":"def main():\n\t$0\n\n\nif __name__ == '__main__':\n\tmain()"},{"prefix":"with","label":"with open","body":"with open(${1:'fichier.txt'}, ${2:'r'}, encoding='utf-8') as ${3:f}:\n\t${4:contenu = f.read()}"},{"prefix":"for","label":"for in","body":"for ${1:item} in ${2:liste}:\n\t$0"},{"prefix":"fori","label":"for range","body":"for ${1:i} in range(${2:10}):\n\t$0"},{"prefix":"while","label":"while","body":"while ${1:condition}:\n\t$0"},{"prefix":"if","label":"if","body":"if ${1:condition}:\n\t$0"},{"prefix":"ife","label":"if / else","body":"if ${1:condition}:\n\t$2\nelse:\n\t$0"},{"prefix":"try","label":"try / except","body":"try:\n\t$1\nexcept ${2:Exception} as e:\n\t$0"},{"prefix":"lc","label":"Compréhension de liste","body":"[${1:x} for ${1:x} in ${2:liste} if ${3:True}]"},{"prefix":"dc","label":"Compréhension de dict","body":"{${1:k}: ${2:v} for ${1:k}, ${2:v} in ${3:d}.items()}"},{"prefix":"imp","label":"import from","body":"from ${1:module} import ${2:nom}"},{"prefix":"fstr","label":"f-string","body":"f'${1:texte} {${2:valeur}}'"},{"prefix":"argp","label":"argparse","body":"import argparse\n\nparser = argparse.ArgumentParser(description=${1:'Description'})\nparser.add_argument('${2:entree}', help=${3:'Fichier d\\'entrée'})\nargs = parser.parse_args()"},{"prefix":"async","label":"Fonction async","body":"async def ${1:nom}(${2}):\n\t$0"},{"prefix":"json:r","label":"Lire un JSON","body":"import json\n\nwith open(${1:'donnees.json'}, encoding='utf-8') as f:\n\t${2:donnees} = json.load(f)"},{"prefix":"json:w","label":"Écrire un JSON","body":"import json\n\nwith open(${1:'donnees.json'}, 'w', encoding='utf-8') as f:\n\tjson.dump(${2:donnees}, f, ensure_ascii=False, indent=2)"},{"prefix":"path","label":"pathlib","body":"from pathlib import Path\n\n${1:dossier} = Path(${2:'.'})"},{"prefix":"lambda","label":"Lambda","body":"lambda ${1:x}: ${2:x}"}]}],"templates":[{"id":"python-script","label":{"fr":"Script Python","en":"Python script"},"description":{"fr":"Dossier avec main.py et README.md","en":"Folder with main.py and README.md"},"files":[{"path":"{{name}}/main.py","content":"def main():\n    print('{{name}} prêt')\n\n\nif __name__ == '__main__':\n    main()\n"},{"path":"{{name}}/README.md","content":"# {{name}}\n\nLancer : `python main.py`\n"}]}]}}