{"id":1012,"library":"pox","title":"Pox: Filesystem Utilities","description":"Pox is a Python library offering simple utilities for exploring and manipulating local and remote filesystems, and for automated build processes. It is currently at version 0.3.7 and maintains an active development status with regular minor updates.","status":"active","version":"0.3.7","language":"python","source_language":"en","source_url":"https://github.com/uqfoundation/pox","tags":["filesystem","utilities","build","automation"],"install":[{"cmd":"pip install pox","lang":"bash","label":"Install Pox"}],"dependencies":[],"imports":[{"symbol":"pox","correct":"import pox"}],"quickstart":{"code":"import pox\n\n# Get the library version\nprint(f\"Pox Version: {pox.version()}\")\n\n# Display the license information\nprint(\"\\n--- License ---\")\nprint(pox.license())\n\n# Display citation information\nprint(\"\\n--- Citation ---\")\nprint(pox.citation())","lang":"python","description":"This quickstart demonstrates how to import the pox library and retrieve its version, license, and citation information."},"warnings":[{"fix":"Ensure your Python environment is version 3.8 or higher when using pox>=0.3.4.","message":"Pox dropped formal support for Python 3.7.","severity":"breaking","affected_versions":"0.3.4 and later"},{"fix":"Upgrade your Python installation to version 3.8 or newer. For earlier Python versions, use pox<0.3.6.","message":"The minimum required Python version was increased from 3.7 to 3.8.","severity":"breaking","affected_versions":"0.3.6 and later"},{"fix":"Upgrade your Python installation to version 3.9 or newer. For Python 3.8, use pox<0.3.7.","message":"The minimum required Python version was further increased from 3.8 to 3.9.","severity":"breaking","affected_versions":"0.3.7 and later"},{"fix":"To get the installed package version, use `importlib.metadata.version('pox')` (for Python 3.8+) or `pkg_resources.get_distribution('pox').version`. If `pox.version()` refers to a specific library function, consult the `pox` documentation for the correct API.","message":"The `pox` module does not expose a `version()` method as part of its public API, leading to an `AttributeError` when `pox.version()` is called.","severity":"breaking","affected_versions":"All versions where `pox.version()` is not available (e.g., if it was removed or never existed)."},{"fix":"Consult the `pox` library documentation for the current method of checking its version, or update your code to remove the call to `pox.version()`.","message":"The `pox.version()` method is not available or has been removed from the `pox` library's API, leading to an `AttributeError`.","severity":"breaking","affected_versions":"unknown"}],"env_vars":null,"last_verified":"2026-05-12T22:35:32.127Z","next_check":"2026-06-27T00:00:00.000Z","problems":[{"fix":"If installing via Git, ensure `__init__.py` files exist in relevant directories. If your project is a subdirectory of the cloned `pox` repository, you might need to adjust imports from `from pox.core import ...` to `from pox.pox.core import ...`. For modern `pox` (uqfoundation), ensure Python 3.9+ is used and install with `pip install pox`. For older `pox` (noxrepo), use Python 2.7.","cause":"This error often occurs when the POX library is not correctly installed as a Python package, or when there's a mismatch between the import statement and the actual directory structure, especially after cloning the repository directly. It can also stem from Python 2 vs. Python 3 compatibility issues, as older POX versions primarily supported Python 2.7.","error":"ImportError: No module named pox.core"},{"fix":"Convert the `IPAddr` object to its string representation first using the `.toStr()` method before applying string operations. For example, `st.toStr().split('.')` instead of `st.split('.')`.","cause":"This error occurs when attempting to use string manipulation methods, such as `split()`, directly on an `IPAddr` object from `pox.lib.addresses`. The `IPAddr` object represents an IP address but is not a native Python string type.","error":"AttributeError: 'IPAddr' object has no attribute 'split'"},{"fix":"For older POX distributions (e.g., `noxrepo/pox`), use a Python 2.7 interpreter. If you intend to use POX with Python 3, ensure you are using the actively maintained `pox` library from the `uqfoundation` project, which supports Python 3.9+.","cause":"This warning indicates that you are likely running an older version of POX, which was originally developed for Python 2.7, with a Python 3 interpreter. While some functionality might work, core components or dependencies may not be fully compatible, leading to unexpected behavior or further errors.","error":"WARNING:version:Support for Python 3 is experimental."},{"fix":"Ensure that you are accessing the `connection` attribute from the `event` object provided to your event handler. For instance, if you have an `_handle_PacketIn` method, use `event.connection.send(fm)` instead of `self.connection.send(fm)`.","cause":"This `AttributeError` typically arises in POX when a custom controller component or module tries to access an attribute like `connection` directly from its own instance (`self.connection`), but `connection` is actually an attribute of an event object (e.g., `event.connection`) that is passed to event handler functions within the controller.","error":"AttributeError: 'YourControllerClass' object has no attribute 'connection'"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.3.7","cli_name":"","install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"18.0M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"18.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.5,"import_time_s":0.01,"mem_mb":1.1,"disk_size":"18M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.01,"mem_mb":1.1,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"19.8M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"19.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.6,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"20M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"11.7M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"11.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.4,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"12M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"11.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.4,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"12M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"17.5M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"17.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.8,"import_time_s":0.01,"mem_mb":1.1,"disk_size":"18M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.01,"mem_mb":1.1,"disk_size":"18M"}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}