{"id":8557,"library":"python-status","title":"HTTP Status for Humans","description":"A very simple Python library providing human-understandable HTTP status codes and helper methods to improve code readability. Originally forked from Django Rest Framework, it reached version 1.0.1 in October 2015 and has not seen further updates since, making it an effectively abandoned project.","status":"abandoned","version":"1.0.1","language":"en","source_language":"en","source_url":"https://github.com/avinassh/status/","tags":["http","status codes","web","requests","api"],"install":[{"cmd":"pip install python-status","lang":"bash","label":"Install latest version"}],"dependencies":[],"imports":[{"symbol":"status","correct":"import status"},{"symbol":"HTTP_200_OK","correct":"status.HTTP_200_OK"},{"note":"The function expects a numeric status code, not a response object directly.","wrong":"status.is_success(response.status_code)","symbol":"is_success","correct":"status.is_success(code)"}],"quickstart":{"code":"import requests\nimport status\nimport os\n\n# Example usage with a requests response\nresponse = requests.get(os.environ.get('TEST_URL', 'https://httpbin.org/status/200'))\n\nif status.is_success(code=response.status_code):\n    print(f\"Request successful: {response.status_code} {status.phrase(response.status_code)}\")\nelif status.is_client_error(code=response.status_code):\n    print(f\"Client error: {response.status_code} {status.phrase(response.status_code)}\")\nelif status.is_server_error(code=response.status_code):\n    print(f\"Server error: {response.status_code} {status.phrase(response.status_code)}\")\n\n# Direct access to status codes\nprint(f\"HTTP OK: {status.HTTP_200_OK}\")\nprint(f\"HTTP Not Found: {status.HTTP_404_NOT_FOUND}\")","lang":"python","description":"This quickstart demonstrates how to import and use the `status` library with HTTP status codes and helper functions, often in conjunction with a library like `requests`."},"warnings":[{"fix":"Migrate to the standard library's `http.HTTPStatus` (available in Python 3.5+), which provides similar functionality and is actively maintained. Alternatively, consider `requests.Response.raise_for_status()` for basic error checking or `httpx` for modern HTTP client needs.","message":"The `python-status` library is effectively abandoned. Its last release was in October 2015, with official compatibility listed only up to Python 3.5. It is highly unlikely to function correctly or be maintained on modern Python versions (3.6+).","severity":"breaking","affected_versions":"All versions on Python 3.6+."},{"fix":"Replace `import status` with `from http import HTTPStatus`. Use `HTTPStatus.OK` instead of `status.HTTP_200_OK` and `HTTPStatus.OK.value` for the integer code. For `is_success`, `is_client_error`, etc., you may need to implement custom helper functions or use integer comparisons, e.g., `200 <= code < 300`.","message":"This library has been superseded by the `http.HTTPStatus` enum in the Python standard library, introduced in Python 3.5.","severity":"deprecated","affected_versions":"All versions of `python-status` on Python 3.5+."},{"fix":"Check your Python environment and if it's 3.5 or newer, prefer `http.HTTPStatus`. If you must use `python-status` for legacy reasons, ensure your environment is Python 3.5 or older.","message":"The library's `requires_python` metadata on PyPI is `None`, which might suggest broad compatibility. However, the project classifiers and last commit date indicate support explicitly for Python 2.7, 3.3, 3.4, and 3.5. Using it on newer Python versions is not officially supported and may lead to unexpected behavior or `ImportError`.","severity":"gotcha","affected_versions":"All versions of `python-status` on Python 3.6+."}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Run `pip install python-status` to install the library.","cause":"The `python-status` library is not installed in the current environment.","error":"ModuleNotFoundError: No module named 'status'"},{"fix":"Upgrade to `http.HTTPStatus` from the standard library. Newer Python versions' `HTTPStatus` enum will include more recently defined codes. If using an old Python and stuck with `python-status`, you might need to use the raw integer value for less common or newer status codes.","cause":"The `python-status` library might not have all newer HTTP status codes or you are using it in a context where a newer status code is expected that wasn't defined in its 2015 release.","error":"AttributeError: module 'status' has no attribute 'HTTP_XXX_YYY' (e.g., HTTP_422_UNPROCESSABLE_ENTITY)"},{"fix":"Access status codes as attributes (e.g., `status.HTTP_200_OK`) or call helper functions with arguments (e.g., `status.is_success(code=200)`). Do not attempt to call `status()` directly.","cause":"The `status` import provides a module with attributes (like `status.HTTP_200_OK`) and functions (like `status.is_success`), but the `status` module itself is not a callable class or function to instantiate.","error":"TypeError: 'module' object is not callable (e.g., `status(200)` is called)"}]}