{"id":4642,"library":"naked","title":"Naked: A Command Line Application Framework","description":"Naked is a MIT licensed Python command line application framework that is currently in development, described as an 'early stable testing version'. It provides an executable for project generation, testing, profiling, and distribution to PyPI, alongside a Python library featuring an easy-to-use command-line string object parser and numerous Python type/method/function extensions. The current version is 0.1.32, released on November 6, 2022. The project maintains an active status with ongoing development, though users are advised to anticipate potential breaking changes.","status":"active","version":"0.1.32","language":"en","source_language":"en","source_url":"https://github.com/chrissimpkins/naked","tags":["command line","framework","CLI","application development","toolshed","utility"],"install":[{"cmd":"pip install Naked","lang":"bash","label":"Install with pip"}],"dependencies":[],"imports":[{"note":"The top-level package is `Naked` (capitalized) and contains submodules like `commandline` and `toolshed`. Direct import from `naked` (lowercase) or `naked.commandline` will fail if `naked` refers to the top-level package object rather than the submodule.","wrong":"from naked import Command","symbol":"Command","correct":"from Naked.commandline import Command"},{"note":"Toolshed utilities are under `Naked.toolshed`. For compiled C versions, use `from Naked.toolshed.c.shell import execute` (requires compilation).","wrong":"from naked.shell import execute","symbol":"execute","correct":"from Naked.toolshed.shell import execute"}],"quickstart":{"code":"import sys\nfrom Naked.commandline import Command\n\n# Simulate command-line arguments for demonstration\n# In a real application, sys.argv would be populated by the shell.\n# For example, to run this: python your_script.py hello world --print\nsys.argv = ['your_script.py', 'hello', 'world', '--print']\n\nc = Command(sys.argv[0], sys.argv[1:])\n\nif c.cmd == 'hello' and c.cmd2 == 'world':\n    if c.option('--print'):\n        print('Hello World from Naked!')\n    else:\n        print('Hello World (without --print) from Naked!')\nelse:\n    print('Invalid command. Try: hello world --print')\n","lang":"python","description":"This quickstart demonstrates parsing command-line arguments using `Naked.commandline.Command`. It simulates command-line input and checks for a primary command ('hello'), a secondary command ('world'), and an option ('--print')."},"warnings":[{"fix":"Monitor the GitHub repository for updates and release notes. Pin exact versions in `requirements.txt` and review changes before upgrading.","message":"Naked is in 'early stable testing version' and the developers explicitly warn that 'things may break'. Users should expect potential breaking changes between minor or patch versions.","severity":"breaking","affected_versions":"0.1.0 to latest (0.1.32)"},{"fix":"Test the library thoroughly on your target Python 3 version. If issues arise, consider contributing fixes or using a Python environment within the explicitly supported range (Python 2.6, 2.7, 3.3).","message":"The project lists support for Python 2.6, 2.7, and Python 3.3. While it might function on newer Python 3 versions, explicit compatibility is only guaranteed up to Python 3.3. Running on much newer Python versions (e.g., Python 3.8+) may lead to unforeseen compatibility issues, as Python 3.3 is quite old and Python 2 is end-of-life.","severity":"gotcha","affected_versions":"All versions of Naked on Python 3.4+."},{"fix":"Use unique names for your local files and modules that do not conflict with installed packages.","message":"Avoid naming your own Python files or modules 'naked.py' or 'Naked.py' in your project's `PYTHONPATH`. This can lead to import conflicts where Python imports your local module instead of the installed `Naked` package, causing `ModuleNotFoundError` or unexpected behavior when trying to import submodules like `Naked.commandline`.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-12T00:00:00.000Z","next_check":"2026-07-11T00:00:00.000Z"}