[Python] J'ai créé ma propre bibliothèque qui peut être importée dynamiquement

salut! C'est Nukosuke! python a une bibliothèque intégrée qui importe dynamiquement un module appelé importlib, mais j'ai créé ma propre bibliothèque pour la rendre plus facile à utiliser!

Que pouvez-vous faire avec cette bibliothèque?

En spécifiant le nom du package, vous pouvez importer dynamiquement les modules sous ** puis récupérer l'objet de classe défini dans le module! ** ** Plus précisément, vous pouvez écrire le code Python suivant!

project/
 ├ example.py
 └ validator/
   ├ validator_a.py
   ├ validator_b.py
   └ validator_c.py
class ValidatorA:
    #Idem pour b et c
    def valildate(self, input):
        #Processus de validation
from autoload.module_loader import ModuleLoader

input = "foo bar baz"
loader = ModuleLoader()

#Charge automatiquement les modules sous le validateur et renvoie une liste d'objets de classe tels que ValidatorA
validator_classes = loader.load_classes("validator")
try:
    #Instancier un objet de classe et exécuter une méthode
    [clazz().validate(input) for clazz in validator_classes]
except:
    print("input is invalid!!")

Qu'est-ce qui est délicieux dans cette bibliothèque?

** C'est très utile lorsque vous voulez faire quelque chose ensemble! ** ** Ce qui suit est considéré comme un exemple de scène d'utilisation concrète.

Lors de la mise en œuvre d'un pipeline, cela ressemble à ceci: (Ceci est une image d'acquisition et de traitement de données en parallèle)

project/
 ├ example.py
 └ pipelineA/
   ├ get_data_a.py
   └ processing_data_a.py
 └ pipelineB/
   ├ get_data_b.py
   └ processing_data_b.py
from autoload.module_loader import ModuleLoader

package_names = ("pipelineA", "pipelineB")
loader = ModuleLoader()

#Il s'agit d'un traitement parallèle
for package_name in package_names:
    GetData, ProcessingData = loader.load_classes(package_name)
    data = GetData().get()
    processed_data = ProcessingData().process(data)

Comment utilisez-vous cette bibliothèque?

Veuillez vous référer à cette page pour savoir comment l'utiliser!

Pourquoi avez-vous créé une telle bibliothèque?

À l'origine, j'ai personnellement créé un site qui note et introduit le niveau de recommandation des livres, mais j'applique plusieurs modèles de validation aux données du livre. J'avais besoin de.

J'ai cherché sur Google de diverses manières en pensant que je pouvais créer un module pour chaque modèle de validation et l'importer dynamiquement pour une bonne impression et exécuter la validation, mais cela ne semblait pas être le cas, alors je l'ai fait moi-même!

Je l'ai fait moi-même, mais je pensais qu'il pouvait être utilisé à des fins générales, alors je l'ai publié en tant que bibliothèque!

Un dernier mot

La contribution est la bienvenue car il y a encore des choses qui ne suffisent pas!

Recommended Posts

[Python] J'ai créé ma propre bibliothèque qui peut être importée dynamiquement
J'ai créé ma propre bibliothèque Python
J'ai fait un shuffle qui peut être réinitialisé (inversé) avec Python
J'ai fait ma propre langue. (1)
J'ai fait ma propre langue (2)
J'ai fait ma propre AML
J'ai créé mon propre middleware Django afin de pouvoir accéder aux informations de demande de n'importe où
J'ai essayé de publier ma propre bibliothèque de baseball Python sur Packaging & PyPI
J'ai fait un package qui peut comparer des analyseurs morphologiques avec Python
Python> J'ai créé un code de test pour mon propre fichier externe
[python] J'ai créé une classe qui peut écrire rapidement une arborescence de fichiers
J'ai créé un modèle de projet Python générique
[Python] J'ai créé un utilitaire qui peut accéder au type dict comme un chemin
J'ai fait une simple minuterie qui peut être démarrée depuis le terminal
J'ai fait un module PyNanaco qui peut charger des crédits nanaco avec python
J'ai créé mon propre générateur de site statique primitif
J'ai essayé de publier mon propre module pour pouvoir l'installer
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
J'ai enregistré PyQCheck, une bibliothèque qui peut effectuer QuickCheck avec Python, dans PyPI.
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
J'ai créé une image Docker qui peut appeler FBX SDK Python à partir de Node.js
Comment installer la bibliothèque Python qui peut être utilisée par les sociétés pharmaceutiques
J'ai créé mon propre robot de liaison parallèle (édition logicielle)
J'ai créé une VM qui exécute OpenCV pour Python
Notes sur les connaissances Python utilisables avec AtCoder
Peut être utilisé chez les pros de la compétition! Bibliothèque standard Python
J'ai créé une bibliothèque python qui fait rouler le rang
J'ai fait mon propre robot à liaison parallèle (édition mécanique)
J'ai fait un module qui peut être glitch facilement, mais je ne peux pas passer l'argument de entry_points
[Atcoder] [C ++] J'ai fait un outil d'automatisation de test qui peut être utilisé pendant le concours
Jusqu'à ce que vous puissiez installer votre propre bibliothèque Python avec pip
Scripts pouvant être utilisés lors de l'utilisation de Bottle en Python
J'ai étudié le prétraitement qui peut être fait avec PyCaret
J'ai créé un plug-in qui peut faire "Daruma-san tombé" avec Minecraft
J'ai fait un blackjack avec du python!
J'ai fait un texte Python
J'ai fait un blackjack avec Python.
J'ai créé wordcloud avec Python.
Je l'ai fait parce que je veux des données JSON qui peuvent être utilisées librement dans les démos et les prototypes
J'ai acheté et analysé la loterie jumbo de fin d'année avec Python qui peut être exécutée dans Colaboratory
[Python] Créez un graphique qui peut être déplacé avec Plotly
J'ai créé une bibliothèque qui lit facilement les fichiers de configuration avec Python
J'ai essayé Python! ] Puis-je publier sur Kaggle sur iPad Pro?
Enquête sur l'alimentation CC contrôlable par Python
Création d'une bibliothèque pour python capable de gérer facilement la division morphologique
À propos de psd-tools, une bibliothèque capable de traiter des fichiers psd en Python
Résumé de l'entrée standard de Python pouvant être utilisée dans Competition Pro
J'ai créé mon propre plug-in de filtre pour l'analyse de texte d'Ansible
Module standard Python utilisable en ligne de commande
J'ai créé une bibliothèque de wrapper Python pour l'API de reconnaissance d'images docomo.
J'ai écrit un tri-arbre qui peut être utilisé pour l'implémentation de dictionnaire à grande vitesse en langage D et Python
[Python] J'ai créé une fonction qui peut également utiliser des expressions régulières qui remplacent toutes les chaînes de caractères à la fois.
J'ai essayé d'approfondir ma compréhension en créant mon propre discriminateur qui peut classer les valeurs binaires à l'aide de la régression logistique.
Puis-je être un data scientist?
J'ai fait un Line-bot avec Python!