{"id":20944,"library":"arcon","title":"arcon","description":"arcon is a Python library (v0.4.0) for persistent runtime configuration. It provides a CLI argument parser that can load defaults from a pyproject.toml file, reducing boilerplate. It requires Python >=3.8, <4.0 and is released on an irregular cadence.","status":"active","version":"0.4.0","language":"python","source_language":"en","source_url":"https://github.com/jshwi/arcon","tags":["cli","configuration","argument-parser","persistent-config"],"install":[{"cmd":"pip install arcon","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Parsing pyproject.toml config","package":"tomli","optional":true}],"imports":[{"note":"Arcon's ArgumentParser subclass with config loading","symbol":"ArgumentParser","correct":"from arcon import ArgumentParser"}],"quickstart":{"code":"from arcon import ArgumentParser\n\nparser = ArgumentParser()\nparser.add_argument('--name', type=str, default='world')\nargs = parser.parse_args()\nprint(f\"Hello, {args.name}!\")","lang":"python","description":"Basic CLI with pyproject.toml support – if a pyproject.toml exists with [tool.arcon] keys, they serve as defaults."},"warnings":[{"fix":"Use underscores: --my-arg → my_arg","message":"Dashes in argument names are not supported; use underscores instead.","severity":"gotcha","affected_versions":"<=0.1.1"},{"fix":"Ensure pyproject.toml is in the project root (the directory containing your script's parent).","message":"pyproject.toml must be in the current or parent directory; arcon walks up to the root.","severity":"gotcha","affected_versions":">=0.3.1"},{"fix":"Use only simple types or override via command-line.","message":"Only simple types (str, int, float, bool) are supported for pyproject.toml defaults; complex types may cause silent failures.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use: from arcon import ArgumentParser","cause":"Incorrect import: from arcon import arcon or import arcon.ArgumentParser","error":"AttributeError: module 'arcon' has no attribute 'ArgumentParser'"},{"fix":"Check version; from arcon import ArgumentParser; parser = ArgumentParser() — config is handled automatically via pyproject.toml.","cause":"Trying to pass a config path directly to ArgumentParser (not supported) or using an older version.","error":"TypeError: __init__() got an unexpected keyword argument 'config'"},{"fix":"Create a pyproject.toml at the project root, or use parser = ArgumentParser(pyproject=False) to disable config loading.","cause":"No pyproject.toml in the project tree, or the file is not readable.","error":"arcon.exceptions.ArconConfigError: No pyproject.toml found"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}