Package: apyzme
ApyzmePrésentationCe module permet de générer facilement une API pour le scripting de python dans Shell, à partir d'un simple décorateur et d'une classe maîtresse, instanciée.Attention : une fois la fonction "lancer" du module, celle s'excute jusqu'à la sortie. Les "exception" ne sont pas volontairement pas gérés et sont laissés à la libre appréciation du développeur.MétadonnéesVersion : 1Mainteneur : Julien Garderonjulien.garderon@gmail.comURL du dépôt :https://git.services.nothus.fr/communaute/apyzmeLicence : MITExempleAprès avoir installé le module, vous pouvez directement appeler la fonction "lancer" et lui fournir la classe portant l'API:
- les arguments par leur fonction "sanitize" (de nettoyage et de contrôle),
- les actions par leur fonction de réalisation.Si la classe portant l'API n'est pas documenté, le module tentera de récupérer la documentation du script "__main__". A défaut, le lancement échouera. Cette partie de la documentation devra toujours répondre à 3 parties séparées par "---" :
- le titre du script
- une courte description
- la version à afficher#!/usr/bin/env python3

""" 
	Test 
	---
	Je ne fais pas grand chose... 
	---
	n 
""" 

################ ---------------------------------------------------------

from apyzme import api, lancer 

################ ---------------------------------------------------------

if __name__=="__main__": 

	class Exemple: 

		@api( "arguments", "arg1" ) 
		def arg1_sanitize( argument ): 
			"""Ceci une courte description de l'argument n°1. 
			---
			Que j'approfondie ici.""" 
			r = f"arg1 : '{argument}'" 
			print( r ) 
			return r

		@api( "arguments", "arg2" ) 
		def arg2_sanitize( argument ): 
			"""Ceci une courte description de l'argument n°2.
			---
			Que j'approfondie ici.""" 
			r = f"arg2 : '{argument}'" 
			print( r ) 
			return r

		@api( "actions", "toto" ) 
		def act1_resoudre( self, arguments ): 
			"""Ceci une courte description de l'action 'toto'.
			---
			Que j'approfondie ici.""" 
			print( "action 'toto' sur les arguments :", arguments ) 
			exit( CODES_RETOUR["ACTION_ALERTE"] )

		@api( "actions", "titi" ) 
		def act1_resoudre( self, arguments ): 
			"""Ceci une courte description de l'action 'titi'.
			---
			Que j'approfondie ici.""" 
			print( "action 'titi' sur les arguments :", arguments ) 

	lancer( Exemple ) 









$ python3 exemple.py 
usage: Apyzme [-h] [--arg1 ARG1] [--arg2 ARG2] [--version] action
Apyzme: error: the following arguments are required: action

$ python3 exemple.py -h
usage: Apyzme [-h] [--arg1 ARG1] [--arg2 ARG2] [--version] action
 
Ce module permet de générer facilement une API pour le scripting de python dans Shell, à partir d'un simple décorateur et d'une classe maîtresse, instanciée. Version 1 - Julien Garderon <julien.garderon@gmail.com>
 
positional arguments:
  action       quelle action entreprendre ?
 
optional arguments:
  -h, --help   show this help message and exit
  --arg1 ARG1  Ceci une courte description de l'argument n°1.
  --arg2 ARG2  Ceci une courte description de l'argument n°2.
  --version    show program's version number and exit

$ python3 apyzme.py --arg1 truc toto
arg1 : 'truc'
action 'toto' sur les arguments : Namespace(action='toto', arg1=["arg1 : 'truc'"], arg2=None)

$ python3 apyzme.py --arg1 truc toto
arg1 : 'truc'
action 'toto' sur les arguments : Namespace(action='toto', arg1=["arg1 : 'truc'"], arg2=None)

$ python3 apyzme.py --arg1 truc --arg1 bidule toto
arg1 : 'truc'
arg1 : 'bidule'
action 'toto' sur les arguments : Namespace(action='toto', arg1=["arg1 : 'truc'", "arg1 : 'bidule'"], arg2=None)