{"id":28468,"library":"xoto3","title":"xoto3","description":"High-level utilities for common boto3 operations in AWS serverless Python development. Current version 2.1.0, supports Python >=3.12, <3.15.","status":"active","version":"2.1.0","language":"python","source_language":"en","source_url":"https://github.com/yougov/xoto3","tags":["aws","boto3","s3","dynamodb","serverless","utilities"],"install":[{"cmd":"pip install xoto3","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency for AWS SDK operations.","package":"boto3","optional":false},{"reason":"Required by boto3 for low-level service interaction.","package":"botocore","optional":false}],"imports":[{"note":"","wrong":"","symbol":"read_from_bucket","correct":"from xoto3.s3 import read_from_bucket"},{"note":"","wrong":"","symbol":"write_to_bucket","correct":"from xoto3.s3 import write_to_bucket"},{"note":"","wrong":"","symbol":"delete_all_objects","correct":"from xoto3.s3 import delete_all_objects"}],"quickstart":{"code":"import os\nfrom xoto3.s3 import read_from_bucket, write_to_bucket\nbucket = os.environ.get('S3_BUCKET', 'my-bucket')\nkey = 'example.txt'\nwrite_to_bucket(bucket, key, b'Hello, xoto3!')\ndata = read_from_bucket(bucket, key)\nprint(data)","lang":"python","description":"Simple S3 read/write using xoto3 utilities."},"warnings":[{"fix":"Upgrade to Python 3.12+ and review function signatures; adopt new patterns from documentation.","message":"xoto3 2.x drops support for Python <3.12 and changes some function signatures (e.g., removed deprecated `raw_response` argument).","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Migrate to plain boto3 DynamoDB calls or use pynamodb directly.","message":"The `pynamodb` integration (`xoto3.dynamodb`) is deprecated and will be removed in a future major release.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use `.decode('utf-8')` on the result or pass `encoding='utf-8'` to the function.","message":"Functions like `read_from_bucket` return bytes by default; string decoding is not automatic. Expect bytes unless you specify `encoding` parameter.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Run `pip install xoto3` in your Python environment.","cause":"Library not installed or installed in wrong environment.","error":"ModuleNotFoundError: No module named 'xoto3'"},{"fix":"Use `from xoto3.s3 import read_from_bucket`.","cause":"Incorrect import path; function is in submodule, not top-level.","error":"ImportError: cannot import name 'read_from_bucket' from 'xoto3'"},{"fix":"Remove `raw_response`; use `Response` object returned or check documentation for new pattern.","cause":"Using deprecated parameter removed in xoto3 2.x.","error":"TypeError: write_to_bucket() got an unexpected keyword argument 'raw_response'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}