Skip to main content

Utilities to identify which environments is your python script running within.

Project description

Environment Utils

Pypi project Pypi total project downloads

Utilities to identify the environment in which your Python script is running.

This includes determining whether you are in a Jupyter Notebook, within a node of a SLURM cluster, the architecture of the system you are using, and the operating system.

Installation

Install environments_utils from PyPi:

pip install environments_utils

Examples

Detect Rosetta on macOS with Python

Rosetta is a translation environment that enables you to run apps that contain x86_64 instructions on Apple silicon. In some cases, Rosetta may fail to translate an app successfully, and lead to crashes or other unexpected behavior. It is sometimes therefore useful to know whether the script is running within a macOS with Rosetta so to better understand whether the odd behaviour you may be experiencing is due to Rosetta or not.

To detect Rosetta, simply run:

from environments_utils import is_macos_rosetta

if is_macos_rosetta():
    print("I am running inside Rosetta!")

is_tmux

Return a boolean representing if the script is running within a TMUX-like terminal.

from environments_utils import is_tmux

if not is_tmux():
    print("This script is long-running; consider starting it within a TMUX-like terminal.")

is_notebook

Return a boolean representing if the script is running within a Jupyter notebook.

from environments_utils import is_notebook
from tqdm import tqdm_notebook, tqdm as tqdm_cli

tqdm = tqdm_notebook if is_notebook() else tqdm_cli

is_slurm_node

Returns whether you are in a SLURM cluster node.

from environments_utils import (
    is_slurm_node,
    get_slurm_node_id,
    get_number_of_available_slurm_nodes
)

if is_slurm_node():
    print("YAY! I'm in node {} of {}!".format(get_slurm_node_id(), get_number_of_available_slurm_nodes()))

Operating System Identifiers

Utilities to identify the operating system running the app.

from environments_utils import is_macos, is_windows, is_linux, is_macos_with_arm

if is_macos():
    print("The OS is macOS")

if is_windows():
    print("The OS is Windows")

if is_linux():
    print("The OS is Linux")

if is_macos_with_arm():
    print("The machine is macOS with ARM processors like M1")

Architecture Identifiers

Utilities to identify the architectures running the app.

from environments_utils import is_x86, is_x86_64, is_arm

if is_x86():
    print("This is a 32-bit system with x86 architecture.")

if is_x86_64():
    print("This is a 64-bit system with x86_64 architecture.")

if is_arm():
    print("This is an ARM machine, such as Mac M1")

Internet Connection

Utility to detect whether the user is connected to the internet.

from environments_utils import is_online

if is_online():
    print("You are online.")
else:
    print("You are offline")

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

environments_utils-1.0.12.tar.gz (7.3 kB view details)

Uploaded Source

File details

Details for the file environments_utils-1.0.12.tar.gz.

File metadata

  • Download URL: environments_utils-1.0.12.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.9

File hashes

Hashes for environments_utils-1.0.12.tar.gz
Algorithm Hash digest
SHA256 86912677732a57a80df0ac56968c65aefd0dac6d2d12ea4386ab267a4d2bd10c
MD5 7c755c58f500adbac4c35dc0e28452c3
BLAKE2b-256 aecc7eda77bf8361c7fc9d622339934f76f8a55983457438166d4e5a6f21e8f5

See more details on using hashes here.

Provenance

Supported by

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