{"categories":[{"label":"Software Development","url":"https://skillfed.io/packages/category/software-development/2"}],"enrichment":{"capability":"Publication hides private implementation details and imports from a module's public namespace by respecting `__all__`, while keeping them accessible via a `_private` pseudo-module for internal use.","skillfed_tags":["api-design","module-introspection"],"use_cases":["Prevent users from accidentally importing internal helper functions or re-exported dependencies when exploring your library interactively","Maintain a clean public API surface without resorting to underscore-prefixing all internal code and modules","Allow internal tests and modules to access private implementation details via the `_private` namespace while keeping them hidden from external users","Align library author expectations (documented public API) with user discovery patterns (interactive exploration)"],"what_it_does":"Publication is a runtime module namespace filter that enforces a library's declared public API by hiding everything not listed in `__all__`. It solves the problem that Python developers typically discover a module's interface by exploring it interactively (via `dir()`, tab-completion, or IDE auto-import) rather than reading documentation, leading to accidental dependencies on private implementation details and imports that library authors never intended to support.\n\nThe package works by intercepting module access and removing non-public names from the runtime namespace while preserving them in a `_private` pseudo-module for legitimate internal use (tests, type-checking, inter-module access). This lets library authors write code naturally without underscore-prefixing everything, while still making the public surface clear to exploratory users. It requires only a single `publish()` call at the end of your module.","worth_installing":"Yes, if you are authoring a library and want to enforce a clean public API without underscore-prefixing all internal code. No, if you need active maintenance or modern Python tooling support\u2014the package has been dormant since 2019 and may have compatibility issues with recent Python versions and type checkers. Consider it for stable, mature libraries where the one-time setup cost is justified; avoid it for new projects requiring ongoing support."},"id":"publication","links":{"html":"https://skillfed.io/packages/publication","md":"https://skillfed.io/packages/publication.md","pypi":"https://pypi.org/project/publication/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2019-01-15","license_spdx":null,"license_treatment":"permissive","name":"publication","python_support":"unspecified","summary":"Publication helps you maintain public-api-friendly modules by preventing unintentional access to private implementation details via introspection."},"popularity":{"monthly_downloads":8276943,"position":1639,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.0.3"}
