Skip to main content

This library offers concise manners to modify list sys.path. The user should not need to directly interact with that list.

Project description

FRANÇAIS

Cette bibliothèque offre des manières concises de modifier la liste sys.path. L'utilisateur ne devrait pas avoir besoin d'interagir directement avec cette liste.

Contenu

Les fonctions suivantes prennent un chemin de type str ou pathlib.Path comme argument. Elles convertissent les arguments de type pathlib.Path en str puisque sys.path n'est censée contenir que des chaînes de caractères.

  • sp_append ajoute le chemin donné à la fin de sys.path.
  • sp_contains indique si sys.path contient le chemin donné.
  • sp_prepend ajoute le chemin donné au début de sys.path.
  • sp_remove enlève le chemin donné de sys.path.

Au moment de sa création, une instance de SysPathBundle contient plusieurs chemins et les ajoute au début de sys.path. Quand on vide (clear) une instance, elle efface son contenu et l'enlève de sys.path. Ainsi, cette classe facilite l'ajout et le retrait d'un groupe de chemins.

Il est possible d'utiliser SysPathBundle comme un gestionnaire de contexte (context manager). Dans ce cas, l'instance est vidée à la fin du bloc with.

La fonction sm_contains prend comme argument un nom (str) de module. Elle indique si le dictionnaire sys.modules contient ce module.

Pour plus d'informations, consultez la documentation et les démos dans le dépôt de code source.

Importations et sys.path

Il est possible d'importer un module si la liste sys.path contient le chemin de son dossier parent. On peut donc rendre un module importable en ajoutant son chemin parent à sys.path.

Importations et sys.modules

Le dictionnaire sys.modules associe des noms (str) de module au module correspondant. Le système d'importation l'utilise comme cache; tout module importé pour la première fois y est conservé. Puisque le système d'importation cherche d'abord les modules demandés dans sys.modules, les modules qu'il contient peuvent être importés partout sans qu'on modifie sys.path.

Sachant cela, on peut déterminer à l'aide de la fonction sm_contains si un module est déjà importable. Si sm_contains renvoie vrai (True), il n'est pas nécessaire de modifier sys.path pour importer le module donné.

ENGLISH

This library offers concise manners to modify list sys.path. The user should not need to directly interact with that list.

Content

The following functions take a path of type str or pathlib.Path as an argument. They convert arguments of type pathlib.Path to str since sys.path is supposed to contain only character strings.

  • sp_append adds the given path to the end of sys.path.
  • sp_contains indicates whether sys.path contains the given path.
  • sp_prepend adds the given path to the beginning of sys.path.
  • sp_remove removes the given path from sys.path.

Upon creation, a SysPathBundle instance stores several paths and prepends them to sys.path. When a bundle is cleared, it erases its content and removes it from sys.path. Thus, this class facilitates adding and removing a group of paths.

SysPathBundle can be used as a context manager. In that case, the instance is cleared at the with block's end.

Function sm_contains takes a module's name (str) as an argument. It indicates whether dictionary sys.modules contains the module.

For more information, consult the documentation and the demos in the source code repository.

Imports and sys.path

It is possible to import a module if list sys.path contains the path to its parent directory. Therefore, you can make a module importable by adding its parent path to sys.path.

Imports and sys.modules

Dictionary sys.modules maps module names (str) to the corresponding module. The import system uses it as a cache; any module imported for the first time is stored in it. Since the import system looks for the requested modules in sys.modules first, the modules that it contains can be imported everywhere with no modifications to sys.path.

Knowing this, you can use function sm_contains to determine if a module is already importable. If sm_contains returns True, modifiying sys.path is not required to import the given module.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syspathmodif-1.5.1.tar.gz (10.3 kB view details)

Uploaded Source

File details

Details for the file syspathmodif-1.5.1.tar.gz.

File metadata

  • Download URL: syspathmodif-1.5.1.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for syspathmodif-1.5.1.tar.gz
Algorithm Hash digest
SHA256 2dfd3e8bff5a9c085d2032ba114bc27bf5cba662d2ca5ed6e64a515d73276120
MD5 32d77c319d0c06be7cbc39c66b70c84a
BLAKE2b-256 0301d34918b3538dde210c75e02caefe3bb88b3b685bea9f84c87b09a3328f7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page