impmagic


Nameimpmagic JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/ZephyrOff/impmagic
SummaryLibrairie pour l'importation optimisé de module python
upload_time2024-08-16 09:52:41
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseMIT License
keywords import module zephyroff
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # impmagic
## Informations
Librairie pour l'importation optimisé de module python.
Fonctionne principalement avec des décorateurs, ce qui permet de charger les modules uniquement lorsqu'ils sont nécessaires.
Toutes ces fonctions se basent sur un système de cache pour recharger plus rapidement les modules lorsqu'ils sont appelés par d'autres fonctions.

### Prérequis
- Python 3
<br>

# Installation
```console
pip install impmagic
```
<br>

# Utilisation
### Importer des modules avec un décorateur
Cette option permet d'importer les modules nécessaires à la fonction uniquement lorsque celle-ci est utilisé.
Pour son fonctionnement, il faut lui envoyer une liste ou un tuple contenant des dictionnaires d'informations.
Chaque dictionnaire doit contenir au minimum la clé module, mais peut également contenir une liste de sous-module (submodule) ou encore l'option as (comme les import classique)
```python
@impmagic.loader(
        {'module':'zpp_args'},
        {'module':'os.path', 'submodule': ['exists']}, 
        {'module':'psutil', 'as': 'psfunction'}, 
        {'module':'toml_nxs.toml', 'submodule': ['TOML'], 'as': 'TOMLnxs'}
    )
    def function(self):
	    #MyCode
```
<br>

### Importer des modules dans une fonction
Il est également possible de charger des modules dans une fonction. Pour cela, on utilise la méthode load.
Nous pouvons lui envoyer un simple str avec le nom du module, mais nous pouvons également lui envoyer les mêmes types de données que le décorateur loader.
```python
impmagic.load('os')
```
<br>

### Enlever un module importé
Il est possible de supprimer d'une fonction un module qui a été importé précédemment.
Il suffit d'appeler la méthode unload avec le nom du module en paramètre.
Par défaut, le module restera dans le cache, il faut ajouter l'option uncache=True pour le supprimer également du cache.
```python
impmagic.unload('os')
```
<br>

### Réimporter un module
Il est possible de réimporter un module déjà importé. 
Cela peut être nécessaire lorsque nous faisons des tests sur un module et que nous voulons voir les changements de suite sans avoir besoin de quitter le shell en cours.
```python
impmagic.reload('os')
```
<br>

### Utiliser un module sans l'importer
Il est possible d'utiliser un module sans avoir besoin de l'importer grâce à la méthode get.
```python
module = impmagic.get('os')
module.mkdir(dir)
```
<br>

### Utiliser un module sans l'importer depuis un fichier
Il est possible d'utiliser un module sans avoir besoin de l'importer grâce à la méthode get.
```python
module = impmagic.get_from_file('os.py')
module.mkdir(dir)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ZephyrOff/impmagic",
    "name": "impmagic",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "import module zephyroff",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/68/37/f65d5f2f1900f287b3da4f1ab386c1078cc9773f6014b91c67e6df15c6a0/impmagic-0.2.1-py3-none-any.whl",
    "platform": null,
    "description": "# impmagic\r\n## Informations\r\nLibrairie pour l'importation optimis\u00e9 de module python.\r\nFonctionne principalement avec des d\u00e9corateurs, ce qui permet de charger les modules uniquement lorsqu'ils sont n\u00e9cessaires.\r\nToutes ces fonctions se basent sur un syst\u00e8me de cache pour recharger plus rapidement les modules lorsqu'ils sont appel\u00e9s par d'autres fonctions.\r\n\r\n### Pr\u00e9requis\r\n- Python 3\r\n<br>\r\n\r\n# Installation\r\n```console\r\npip install impmagic\r\n```\r\n<br>\r\n\r\n# Utilisation\r\n### Importer des modules avec un d\u00e9corateur\r\nCette option permet d'importer les modules n\u00e9cessaires \u00e0 la fonction uniquement lorsque celle-ci est utilis\u00e9.\r\nPour son fonctionnement, il faut lui envoyer une liste ou un tuple contenant des dictionnaires d'informations.\r\nChaque dictionnaire doit contenir au minimum la cl\u00e9 module, mais peut \u00e9galement contenir une liste de sous-module (submodule) ou encore l'option as (comme les import classique)\r\n```python\r\n@impmagic.loader(\r\n        {'module':'zpp_args'},\r\n        {'module':'os.path', 'submodule': ['exists']}, \r\n        {'module':'psutil', 'as': 'psfunction'}, \r\n        {'module':'toml_nxs.toml', 'submodule': ['TOML'], 'as': 'TOMLnxs'}\r\n    )\r\n    def function(self):\r\n\t    #MyCode\r\n```\r\n<br>\r\n\r\n### Importer des modules dans une fonction\r\nIl est \u00e9galement possible de charger des modules dans une fonction. Pour cela, on utilise la m\u00e9thode load.\r\nNous pouvons lui envoyer un simple str avec le nom du module, mais nous pouvons \u00e9galement lui envoyer les m\u00eames types de donn\u00e9es que le d\u00e9corateur loader.\r\n```python\r\nimpmagic.load('os')\r\n```\r\n<br>\r\n\r\n### Enlever un module import\u00e9\r\nIl est possible de supprimer d'une fonction un module qui a \u00e9t\u00e9 import\u00e9 pr\u00e9c\u00e9demment.\r\nIl suffit d'appeler la m\u00e9thode unload avec le nom du module en param\u00e8tre.\r\nPar d\u00e9faut, le module restera dans le cache, il faut ajouter l'option uncache=True pour le supprimer \u00e9galement du cache.\r\n```python\r\nimpmagic.unload('os')\r\n```\r\n<br>\r\n\r\n### R\u00e9importer un module\r\nIl est possible de r\u00e9importer un module d\u00e9j\u00e0 import\u00e9. \r\nCela peut \u00eatre n\u00e9cessaire lorsque nous faisons des tests sur un module et que nous voulons voir les changements de suite sans avoir besoin de quitter le shell en cours.\r\n```python\r\nimpmagic.reload('os')\r\n```\r\n<br>\r\n\r\n### Utiliser un module sans l'importer\r\nIl est possible d'utiliser un module sans avoir besoin de l'importer gr\u00e2ce \u00e0 la m\u00e9thode get.\r\n```python\r\nmodule = impmagic.get('os')\r\nmodule.mkdir(dir)\r\n```\r\n<br>\r\n\r\n### Utiliser un module sans l'importer depuis un fichier\r\nIl est possible d'utiliser un module sans avoir besoin de l'importer gr\u00e2ce \u00e0 la m\u00e9thode get.\r\n```python\r\nmodule = impmagic.get_from_file('os.py')\r\nmodule.mkdir(dir)\r\n```\r\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Librairie pour l'importation optimis\u00e9 de module python",
    "version": "0.2.1",
    "project_urls": {
        "Documentation": "https://github.com/ZephyrOff/impmagic",
        "Homepage": "https://github.com/ZephyrOff/impmagic"
    },
    "split_keywords": [
        "import",
        "module",
        "zephyroff"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6837f65d5f2f1900f287b3da4f1ab386c1078cc9773f6014b91c67e6df15c6a0",
                "md5": "4245435d05578667188af7088cb1df13",
                "sha256": "6dda01e67ac1a0d1c443a4b29583cb2b76f0961413083b49c9b13315bf836d77"
            },
            "downloads": -1,
            "filename": "impmagic-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4245435d05578667188af7088cb1df13",
            "packagetype": "bdist_wheel",
            "python_version": "source",
            "requires_python": null,
            "size": 4943,
            "upload_time": "2024-08-16T09:52:41",
            "upload_time_iso_8601": "2024-08-16T09:52:41.304200Z",
            "url": "https://files.pythonhosted.org/packages/68/37/f65d5f2f1900f287b3da4f1ab386c1078cc9773f6014b91c67e6df15c6a0/impmagic-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc55fd8cce1f19642c5c161a96018c20d393505a20587f8c4d82d72691610ed4",
                "md5": "09a22bd1b05aa27dd8f9952aa8ae2573",
                "sha256": "6180da0b87814169deece695bee9489c72931a40a02ffacf2771e2da4818a9f4"
            },
            "downloads": -1,
            "filename": "impmagic-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "09a22bd1b05aa27dd8f9952aa8ae2573",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 4530,
            "upload_time": "2024-08-16T09:52:42",
            "upload_time_iso_8601": "2024-08-16T09:52:42.822191Z",
            "url": "https://files.pythonhosted.org/packages/cc/55/fd8cce1f19642c5c161a96018c20d393505a20587f8c4d82d72691610ed4/impmagic-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-16 09:52:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ZephyrOff",
    "github_project": "impmagic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "impmagic"
}
        
Elapsed time: 0.35474s