sqloose Documentation Release

Author

Apr 13, 2017

Contents

1 sqloose package 3 1.1 Submodules...... 3 1.2 sqloose.cli module...... 3 1.3 sqloose.sqloose module...... 3 1.4 Module contents...... 4

2 Indices and tables 5

Python Module Index 7

i ii sqloose Documentation, Release

Contents:

Contents 1 sqloose Documentation, Release

2 Contents CHAPTER 1

sqloose package

Submodules sqloose.cli module sqloose CLI interface. Usage: cli.py [INDEX ...] Options: -h –help Show this screen. –version Show version. sqloose.cli.main() Console script for sqloose sqloose.sqloose module

This module implements sqloose, a SQL-like query language that maps to SQL. sqloose is not a itself, but instead translates sqloose to SQL. sqloose is designed as a less rigid SQL, offering a more convenient syntax. In particular, it allows ranges and negative indexes to be used in GROUP BY and ORDER BY statements. The right index in the range specifies the final item. This is unlike Python the right index is the final item + 1. Take the following SQL statement: SELECT age, race, gender, count(*) AS num FROM stats GROUP BY 1,2,3 ORDER BY 4 DESC In sqloose this can be represented many ways, such as: SELECT age, race, gender, count(*) AS num FROM stats GROUP BY [1:3] ORDER BY -1 DESC SELECT age, race, gender, count(*) AS num FROM stats GROUP BY [:3] ORDER BY -1 DESC SELECT age, race, gender, count(*) AS num FROM stats GROUP BY [:-2] ORDER BY -1 DESC Further, sqloose defines the GROUP TO and GROUP THROUGH constructs, which can be used in the same scenario:

3 sqloose Documentation, Release

SELECT age, race, gender, count(*) AS num FROM stats GROUP TO -1 ORDER BY -1 DESC SELECT age, race, gender, count(*) AS num FROM stats GROUP TO 4 ORDER BY -1 DESC SELECT age, race, gender, count(*) AS num FROM stats GROUP THROUGH 3 ORDER BY -1 DESC class sqloose.sqloose.Situation Bases: object We extend GROUP BY to also permit GROUP TO and GROUP THROUGH. by = 1 through = 3 to = 2 sqloose.sqloose.is_number(value) Return if value is numeric, based on attempting to coerce to float. Parameters value – The value in question. Returns True if the float(value) does not throw an exception, otherwise False. sqloose.sqloose.number_to_index(value, num_columns) Given a number and a number of columns, convert the number to an absolute index. Parameters • value – The raw index (could be negative). • num_columns – The maximum number of columns available. Returns The adjusted positive column number. Raises ValueError – Only num_columns columns present, cannot index “value“ sqloose.sqloose.statement_to_sql(statement) Translate a sqloose statement to SQL, confirming its type first. Parameters statement – A single statement in sqloose format. Returns A string containing the corresponding SQL. Raises TypeError – Needs to be a sqlparse..Statement type sqloose.sqloose.string_to_index(needle, columns) Given a string, find which column index it corresponds to. Parameters • needle – The string to look for. • columns – The list of columns to search in. Returns The index containing that string. Raises ValueError – Value “needle” not found in columns “columns“ sqloose.sqloose.to_sql(query) Take a sqloose query and translate it to SQL. Parameters query – A sqloose query. Returns An equivalent SQL query.

Module contents

4 Chapter 1. sqloose package CHAPTER 2

Indices and tables

• genindex • modindex • search

5 sqloose Documentation, Release

6 Chapter 2. Indices and tables Python Module Index

s sqloose,4 sqloose.cli,3 sqloose.sqloose,3

7 sqloose Documentation, Release

8 Python Module Index Index

B by (sqloose.sqloose.Situation attribute),4 I is_number() (in module sqloose.sqloose),4 M main() (in module sqloose.cli),3 N number_to_index() (in module sqloose.sqloose),4 S Situation (class in sqloose.sqloose),4 sqloose (module),4 sqloose.cli (module),3 sqloose.sqloose (module),3 statement_to_sql() (in module sqloose.sqloose),4 string_to_index() (in module sqloose.sqloose),4 T through (sqloose.sqloose.Situation attribute),4 to (sqloose.sqloose.Situation attribute),4 to_sql() (in module sqloose.sqloose),4

9