{"id":8638,"library":"shippinglabel","title":"ShippingLabel","description":"Shippinglabel is a Python library providing utilities for handling packages, including checksums, classifiers, and requirements management. It is actively maintained by domdfcoding with frequent releases, currently at version 2.3.0.","status":"active","version":"2.3.0","language":"en","source_language":"en","source_url":"https://github.com/domdfcoding/shippinglabel","tags":["packaging","metadata","distribution","classifiers","requirements","toml"],"install":[{"cmd":"pip install shippinglabel","lang":"bash","label":"Install with pip"}],"dependencies":[{"reason":"Manages Python distribution metadata.","package":"dist-meta","optional":false},{"reason":"Parses TOML configuration files, used for project metadata.","package":"dom-toml","optional":false},{"reason":"Provides general utility functions for Python development.","package":"domdf-python-tools","optional":false},{"reason":"Core utilities for Python package version handling and environment markers.","package":"packaging","optional":false},{"reason":"Backported and experimental type hints.","package":"typing-extensions","optional":false},{"reason":"Provides canonical PyPI classifiers. Although vendored, it is a declared dependency; a newer installed version takes precedence.","package":"trove-classifiers","optional":false}],"imports":[{"note":"Function to retrieve a set of valid PyPI classifiers.","symbol":"get_valid_classifiers","correct":"from shippinglabel.classifiers import get_valid_classifiers"},{"note":"Function to parse Python project requirements from strings or files.","symbol":"parse_requirements","correct":"from shippinglabel.requirements import parse_requirements"},{"note":"Function to calculate a package's checksum.","symbol":"checksum_package","correct":"from shippinglabel.checksum import checksum_package"}],"quickstart":{"code":"from shippinglabel.classifiers import get_valid_classifiers\n\n# Get all valid PyPI classifiers as a frozenset\nclassifiers = get_valid_classifiers()\nprint(f\"Total valid classifiers: {len(classifiers)}\")\n\n# Check if a specific classifier is valid\nis_python3_only_valid = \"Programming Language :: Python :: 3 :: Only\" in classifiers\nprint(f\"'Programming Language :: Python :: 3 :: Only' is valid: {is_python3_only_valid}\")\n\nis_non_existent_valid = \"Operating System :: Brainfuck\" in classifiers\nprint(f\"'Operating System :: Brainfuck' is valid: {is_non_existent_valid}\")","lang":"python","description":"This quickstart demonstrates how to use the `shippinglabel.classifiers` module to programmatically retrieve and validate PyPI classifiers. It fetches the complete set of valid classifiers and checks for the presence of specific ones."},"warnings":[{"fix":"Upgrade your Python interpreter to 3.7 or a later supported version.","message":"Version 2.0.0 dropped support for Python 3.6. Users on Python 3.6 will encounter `ImportError` or `SyntaxError`.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Migrate usage to `shippinglabel.requirements` for requirement parsing or use the `packaging` library directly for PEP 508 parsing.","message":"The `shippinglabel.dependencies` module was entirely removed in 2.0.0.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Refactor code to use standard `importlib.metadata` (Python 3.8+) or `entrypoints` library for entry point discovery.","message":"The `shippinglabel.entry_points` module was entirely removed in 2.0.0.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"To ensure consistent classifier validation, rely on `shippinglabel`'s bundled `trove-classifiers` or explicitly install and manage the `trove-classifiers` version if you have it as a direct dependency in other parts of your project.","message":"While `trove-classifiers` is a declared dependency, `shippinglabel` includes a vendored copy. If you explicitly install a different version of `trove-classifiers`, `shippinglabel` will use that instead, potentially leading to inconsistencies if there are API changes.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Update your import statements and code to use `shippinglabel.requirements` or `packaging` for dependency-related functionality.","cause":"The `shippinglabel.dependencies` submodule was removed in version 2.0.0.","error":"ModuleNotFoundError: No module named 'shippinglabel.dependencies'"},{"fix":"Upgrade your Python interpreter to 3.7 or a later supported version.","cause":"Attempting to run `shippinglabel` version 2.0.0 or higher on an unsupported Python 3.6 environment.","error":"SyntaxError: invalid syntax (on Python 3.6)"},{"fix":"Refactor code to use `importlib.metadata` or the `entrypoints` library directly for entry point discovery.","cause":"The `shippinglabel.entry_points` module was removed in version 2.0.0.","error":"AttributeError: module 'shippinglabel' has no attribute 'entry_points'"}]}