Skip to main content

No project description provided

Project description

midir

A library for resolving relative module dependencies.

Description

midir is a Python library designed to handle relative module dependencies by resolving directory paths in an intelligent and system-agnostic way. This library can be used to introspect the file structure of your project and manipulate Python's sys.path, allowing for dynamic module imports based on directory hierarchy. It is especially helpful for larger projects where file structure can become complex and static imports cumbersome to manage.

Features

  1. midir(path: str) -> str: Returns the directory name of the given file or directory path.

  2. get_caller() -> str: Returns the name of the file or the location (directory) where the current execution point is present.

  3. mipath(path: str = None) -> str: Returns the canonical (absolute) path of the current execution point or a provided path.

  4. midir(path: str = None) -> str: Returns the directory name where the current execution point is or from a provided path.

  5. root_levels(levels: int = 1) -> None: Makes directories available for import by adding them to sys.path. It starts from directory of the caller file and move up the directory hierarchy. The number of levels up to move is determined by input argument.

  6. root_suffix(suffix: str) -> None: Similar to root_levels, but instead of moving up a certain number of directories, it continues to move up until it finds a directory whose name ends with the provided suffix and adds that directory to sys.path.

Exceptions

  1. FolderNotFoundError: Custom exception raised when no folder matching the required conditions (in root_suffix) is found in the directory hierarchy.

Build instructions

  1. Building the package before uploading: 'python -m build' (from "midir").
  2. Upload the package to pypi: 'python -m twine upload --repository {pypi|testpypi} dist/*'
  3. Install the package from pypi: 'python -m pip install --index-url {https://test.pypi.org/simple|https://pypi.org/simple} --no-deps midir'
  4. If any dependencies are required, edit the pyproject.toml file, "[project]" field, and add a dependencies key with a List\[str\] value, where each string is a pip-readable dependency.

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

midir-1.0.0.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

midir-1.0.0-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file midir-1.0.0.tar.gz.

File metadata

  • Download URL: midir-1.0.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for midir-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2c40a4763c9c9769b498cfa97ad50b7b5c977ae4a00bd1182810aad9bf33c35b
MD5 c7b6ab1df567f759ac9e790d9ba4b2b6
BLAKE2b-256 4bce14f4ba4414e4be4625df172ee1e97de6073935847eea80f94e6a58ead284

See more details on using hashes here.

File details

Details for the file midir-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: midir-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for midir-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93130aec89b5e7bc43b3997d575cc99f492be16f2593055687e2284d9b93d351
MD5 01a6b77185a4843539aeaf70fdde372b
BLAKE2b-256 81412786489cb64c1c89506af16f683fd1bb3650520344bd495c0af80f47275c

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