def test_frompath_queries_cls(sql_dir): class TestQueries(Queries): pass queries = aiosql.from_path(sql_dir, "aiosqlite", queries_cls=TestQueries) assert isinstance(queries, TestQueries)
def queries(): dir_path = Path(__file__).parent / "blogdb/sql" return aiosql.from_path(dir_path, "aiosqlite")
def queries(): dir_path = Path(__file__).parent / "blogdb/sql" return aiosql.from_path(dir_path, "asyncpg", RECORD_CLASSES)
# coding: utf-8 from __future__ import annotations import datetime as dt import itertools import typing as t import aiosql from dropbox import Dropbox from psycopg2.extensions import connection from gargbot_3000 import config from gargbot_3000.database import JinjaSqlAdapter from gargbot_3000.logger import log queries = aiosql.from_path("sql/picture.sql", driver_adapter=JinjaSqlAdapter) def connect_dbx() -> Dropbox: # no test coverage dbx = Dropbox(config.dropbox_token) log.info("Connected to dbx") return dbx def sortout_args( args: t.Set[str], topic: t.Optional[str], year: t.Optional[str], garglings: list[str], exclusive: bool, ) -> tuple[list, set]:
def queries(): dir_path = Path(__file__).parent / "blogdb" / "sql" return aiosql.from_path(dir_path, "psycopg2", RECORD_CLASSES)
import datetime as dt from functools import partial import time import typing as t import aiosql import dropbox import psycopg2 from psycopg2.extensions import connection from requests.exceptions import SSLError from gargbot_3000 import pictures, quotes from gargbot_3000.journey import achievements from gargbot_3000.logger import log queries = aiosql.from_path("sql/gargling.sql", "psycopg2") def prettify_date(date: dt.datetime) -> str: timestamp = int(time.mktime(date.timetuple())) return (f"<!date^{timestamp}^{{date_pretty}} " f"at {date.strftime('%H:%M')}| " f"{date.strftime('%A %d. %B %Y %H:%M')}>") def command_explanation(server: bool = False): commands = ( "`@gargbot_3000 hvem [spørsmål]`: svarer på spørsmål om garglings \n" "`@gargbot_3000 pic [lark/fe/skating/henging] [kun] [gargling] [år]`: random bilde\n" "`@gargbot_3000 forum [garling]`: henter tilfeldig sitat fra ye olde forumet\n" "`@gargbot_3000 msn [garling]`: utfrag fra tilfeldig msn samtale\n"
#! /usr/bin/env python3.6 # coding: utf-8 import datetime as dt import html import random import re import typing as t import aiosql import bbcode from htmlslacker import HTMLSlacker from psycopg2.extensions import connection from gargbot_3000 import config forum_queries = aiosql.from_path("sql/post.sql", "psycopg2") msn_queries = aiosql.from_path("sql/message.sql", "psycopg2") def _sanitize_post(inp, bbcode_uid: str): smls = re.compile(r'<!-- s.*? --><img src=\\?"\{SMILIES_PATH\}/.*?\\?" ' 'alt=\\?"(.*?)\\?" title=\\?".*?" /><!-- s.*? -->') inp = re.sub(smls, r"\1", inp) inp = html.unescape(inp) inp = inp.replace(":" + bbcode_uid, "") img_tags = re.compile(r"\[/?img\]") inp = re.sub(img_tags, "", inp) youtube_embeds = re.compile(
import os import sqlite3 import aiosql BASE_DIR = os.path.dirname(os.path.abspath(__file__)) conn = sqlite3.connect("db.db") queries = aiosql.from_path(os.path.join(BASE_DIR, "queries.sql"), "sqlite3")
import sqlite3 import csv from io import StringIO from bottle import get, post, request, template, run, static_file, response import aiosql CONN = sqlite3.connect("todo.db") QUERIES = aiosql.from_path("tasks.sql", "sqlite3") @get("/static/js/<filename>") def static_js(filename): return static_file(filename, root="static/js") @get("/") @post("/") def index(): if request.method == "POST": task_text = request.forms.taskInput add_task(task_text) return template('templates/index.html', tasks=get_tasks()) @post("/delete/<id_task:int>") def delete(id_task): delete_task(id_task)
def queries(): p = Path(__file__).parent / "blogdb" / "sql" return aiosql.from_path(p, "sqlite3", RECORD_CLASSES)
import sys import time import typing as t from operator import attrgetter import aiosql import pendulum from dropbox import Dropbox from psycopg2.extensions import connection from slackclient import SlackClient from dataclasses import dataclass from gargbot_3000 import config, database, health, pictures, task from gargbot_3000.logger import log queries = aiosql.from_path("sql/congrats.sql", "psycopg2") mort_picurl = "https://pbs.twimg.com/media/DAgm_X3WsAAQRGo.jpg" @dataclass(frozen=True) class Recipient: nick: str slack_id: str age: int def todays_recipients(conn: connection) -> t.List[Recipient]: now_tz = pendulum.now(config.tz) data = queries.congrats_for_date(conn, month=now_tz.month, day=now_tz.day) recipients = [
import aiosqlite import sys import logging from dataclasses import dataclass @dataclass class User: user_id: int username: str firstname: str lastname: str logging.basicConfig(level=logging.DEBUG) queries = aiosql.from_path("queries.sql", "aiosqlite", record_classes={"User": User}) print("****************************************", file=sys.stderr) for name in queries.available_queries: print(" ", name, file=sys.stderr) print("****************************************", file=sys.stderr) async def main(): # Parallel queries!!! async with aiosqlite.connect("greetings.db") as conn: greetings, user = await asyncio.gather( queries.get_all_greetings(conn), queries.get_user_by_username(conn, username="******"), ) for _, greeting in greetings:
import sqlite3 import aiosql queries = aiosql.from_path("../sql/queries.sql", "sqlite3") if __name__ == "__main__": # db_url = '../test/tests_data/test.db' db_url = "./bm2.db" conn = sqlite3.connect(db_url) print(queries) # r = queries.get_all(conn) # print(r) r = queries.create_db(conn) print(r)
def load_sql_commands(*args, **kwargs): mode = kwargs.get('mode', 'aiosqlite') cmd_file = os.path.join(__pkg_dir__, 'sql', 'commands.sql') cmds = aiosql.from_path(cmd_file, mode) return cmds
def test_frompath_queryloader_cls(sql_dir): mock_loader = mock.MagicMock(wraps=QueryLoader) aiosql.from_path(sql_dir, "aiosqlite", loader_cls=mock_loader) assert mock_loader.called
import asyncio from uuid import UUID import aiosql import asyncpg import edgedb from edgeql_queries.contrib import aiosql as eq_aiosql MOVIE_ID = UUID("6000323c-cc31-474d-828b-dadaa6404674") pg_queries = aiosql.from_path("./aiosql_contrib.sql", "asyncpg") edb_queries = aiosql.from_path( "./aiosql_contrib.edgeql", driver_adapter=eq_aiosql.EdgeQLAsyncAdapter, loader_cls=eq_aiosql.EdgeQLQueryLoader, queries_cls=eq_aiosql.EdgeQLQueries, ) async def main(): edb_conn = await edgedb.async_connect() pg_conn = await asyncpg.connect("postgres://postgres@localhost/postgres") movie = await edb_queries.select_movie_by_id(edb_conn, MOVIE_ID) user_record = await pg_queries.get_username_by_id( pg_conn, id=movie.director.user_id, ) print(f"Director's name: {user_record[0]}")
from flask_jwt_extended import get_jwt_identity, jwt_required import pendulum import withings_api from withings_api import AuthScope, WithingsApi, WithingsAuth from withings_api.common import ( Credentials, GetActivityField, GetSleepSummaryField, MeasureType, ) from gargbot_3000 import config from gargbot_3000 import database as db from gargbot_3000.logger import log queries = aiosql.from_path("sql/health.sql", driver_adapter=db.JinjaSqlAdapter) blueprint = Blueprint("health", __name__) withings_api.common.enforce_type = lambda value, expected: value @contextmanager def connection_context( conn=t.Optional[db.connection], ) -> t.Generator[db.connection, None, None]: if conn is not None: yield conn elif current_app: with current_app.pool.get_connection() as conn: yield conn else: conn = db.connect()
import argparse import sqlite3 from pathlib import Path import aiosql dir_path = Path(__file__).parent sql_path = dir_path / "sql" db_path = dir_path / "exampleblog.db" queries = aiosql.from_path(dir_path / "sql", "sqlite3") users = [ ("bobsmith", "Bob", "Smith"), ("johndoe", "John", "Doe"), ("janedoe", "Jane", "Doe"), ] blogs = [ ( 1, "What I did Today", """\ I mowed the lawn, washed some clothes, and ate a burger. Until next time, Bob""", "2017-07-28", ), ( 3, "Testing", """\