No project description provided
Project description
Legion Query Runners
This package provides query runners for Legion, supporting various database systems and data sources. The package provides a unified interface for executing queries, retrieving schemas, and handling result sets across different database systems.
Supported Data Sources
- PostgreSQL
- Redshift
- Redshift (with IAM User/Role)
- CockroachDB
- MySQL
- MySQL (Amazon RDS)
- Microsoft SQL Server
- Microsoft SQL Server (ODBC)
- Big Query
- Oracle DB
- SQLite
- Amazon Athena
- Apache Hive
- Apache Hive (HTTP)
- Databricks
- Snowflake
Installation
pip install legion-query-runner
Basic Usage
from legion_query_runner.query_runner import QueryRunner
# Initialize with database configuration
sqlite_config = {
"database": "/path/to/your/database.sqlite"
}
# Example with SSH tunnel configuration
pg_config = {
"host": "internal-db.example.com",
"port": 5432,
"user": "username",
"password": "password",
"dbname": "database_name",
"ssh_tunnel_enabled": True,
"ssh_host": "bastion.example.com",
"ssh_port": 22,
"ssh_username": "ssh_user"
}
# Create a QueryRunner instance
runner = QueryRunner('sqlite', sqlite_config)
# Test connection
runner.test_connection()
# Execute a query
results = runner.run_query("SELECT * FROM users LIMIT 10")
print(f"Columns: {results['columns']}")
print(f"Row count: {len(results['rows'])}")
# Get schema
schema = runner.get_schema()
for table in schema:
print(f"Table: {table['name']}")
for column in table['columns']:
print(f" - {column['name']} ({column['type']})")
# Get columns for a specific table
columns = runner.get_table_columns("users")
print(f"Columns in users table: {columns}")
# Get column types for a specific table
column_types = runner.get_table_types("users")
print(f"Column types in users table: {column_types}")
Core Features
- Unified Database Interface: Interact with different databases using a consistent API
- Schema Retrieval: Get table and column information from your database
- Type Inference: Automatic detection of column data types
- Query Execution: Run SQL queries and process results in a standardized format
- Connection Management: Establish, test, and maintain database connections
- SSH Tunneling: Connect to databases through SSH tunnels with bastion host support
- Authentication Support: Handle various authentication methods including IAM for AWS services
Development
To set up the development environment:
-
Install dependencies:
poetry install --with dev
-
Run tests:
poetry run pytest
Publish
poetry publish --build
License
Proprietary - All rights reserved by Legion.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file legion_query_runner-0.2.0.tar.gz.
File metadata
- Download URL: legion_query_runner-0.2.0.tar.gz
- Upload date:
- Size: 31.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.11.7 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b82122c81cd3e07986eaf69a2e89b17a81b8e4dfe22bf04d66eac02199d1f58
|
|
| MD5 |
040e762662f742166735f25f7ee1c3f8
|
|
| BLAKE2b-256 |
eda7579a262a9b03474de1df3d3c4622ae04044e31374549bf8df329f303473a
|
File details
Details for the file legion_query_runner-0.2.0-py3-none-any.whl.
File metadata
- Download URL: legion_query_runner-0.2.0-py3-none-any.whl
- Upload date:
- Size: 43.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.11.7 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c4767fd11278e3072696b50b9a547ca77bf2c684e3a602f17175b9ec1ce04b9
|
|
| MD5 |
876e73a71f330b124e69f7ab439d8d95
|
|
| BLAKE2b-256 |
f3e2e6154cd0a59bbd1bd918531d3ee5ede0482eb624de8c34c744a52f9954cd
|