{"id":27876,"library":"iomete-sqlalchemy","title":"IOMETE SQLAlchemy Dialect","description":"SQLAlchemy dialect for IOMETE data lakehouse platform using Apache Arrow Flight SQL. Version 1.0.22, monthly releases. Enables connection to IOMETE from Python via SQLAlchemy engine.","status":"active","version":"1.0.22","language":"python","source_language":"en","source_url":"https://github.com/IOMETEOSS/iomete-sqlalchemy","tags":["sqlalchemy","iomete","arrow-flight","data-lakehouse","database"],"install":[{"cmd":"pip install iomete-sqlalchemy","lang":"bash","label":"Default install"}],"dependencies":[{"reason":"Core dependency for SQLAlchemy engine and dialect registration","package":"sqlalchemy","optional":false},{"reason":"Required for Arrow Flight SQL protocol","package":"pyarrow","optional":false},{"reason":"gRPC layer for Arrow Flight","package":"grpcio","optional":false}],"imports":[{"note":"create_engine is from SQLAlchemy, not the dialect package","wrong":"from iomete_sqlalchemy import create_engine","symbol":"create_engine","correct":"from sqlalchemy import create_engine"},{"note":"Use SQLAlchemy's engine type","wrong":"Engine is not exported directly from iomete-sqlalchemy","symbol":"Engine","correct":"from sqlalchemy import Engine"}],"quickstart":{"code":"from sqlalchemy import create_engine\nimport os\n\n# Connection string: iomete://<username>:<password>@<host>:<port>/<database>\nusername = os.environ.get('IOMETE_USERNAME', 'your_username')\npassword = os.environ.get('IOMETE_PASSWORD', 'your_password')\nhost = os.environ.get('IOMETE_HOST', 'your_host')\nport = os.environ.get('IOMETE_PORT', '443')\ndatabase = os.environ.get('IOMETE_DATABASE', 'default')\n\nengine = create_engine(f'iomete://{username}:{password}@{host}:{port}/{database}')\nwith engine.connect() as conn:\n    result = conn.execute(\"SELECT 1\")\n    print(result.fetchone())","lang":"python","description":"Connect to IOMETE using SQLAlchemy engine with IOMETE dialect."},"warnings":[{"fix":"Upgrade Python to 3.9 or later.","message":"Python >=3.9 is required; earlier versions are unsupported.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use urllib.parse.quote for username/password: from urllib.parse import quote; engine_url = f'iomete://{quote(username)}:{quote(password)}@...'","message":"The connection string URL must not contain unsupported special characters in password. Percent-encode if needed.","severity":"gotcha","affected_versions":"all"},{"fix":"Stay updated with changelog; no immediate change required.","message":"The older 'iomete://' dialect prefix might be deprecated in favor of 'iomete+s3' or similar in future versions.","severity":"deprecated","affected_versions":"1.0.x"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"pip install iomete-sqlalchemy. Verify installation: pip list | grep iomete-sqlalchemy","cause":"iomete-sqlalchemy is not installed or entry point not registered.","error":"sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:iomete"},{"fix":"Double-check host:port. Ensure the IOMETE endpoint is reachable (test with telnet or curl).","cause":"Host or port is incorrect, or network/firewall blocks the Flight SQL port.","error":"pyarrow.lib.ArrowIOError: Arrow Flight error: Failed to connect to remote server"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}