def generate_rst(modules_fn, types_fn): from preql import Preql p = Preql() with open(types_fn, 'w', encoding='utf8') as f: print('Preql Types', file=f) print('===========', file=f) for t in T.values(): try: print(autodoc(t).print_rst(), file=f) except NotImplementedError: pass with open(modules_fn, 'w', encoding='utf8') as f: print('Preql Modules', file=f) print('=============', file=f) print(doc_module(p('__builtins__')).print_rst(), file=f) p('import graph') print(doc_module(p('graph')).print_rst(), file=f)
from ipykernel.kernelbase import Kernel # import requests from . import __version__ import preql from preql.autocomplete import autocomplete from preql import Preql, Signal pql = Preql() pql.set_output_format('html') class PreqlKernel(Kernel): implementation = 'Preql' implementation_version = __version__ language = 'preql' language_version = preql.__version__ language_info = { 'name': 'Preql', 'mimetype': 'text/x-pql', 'file_extension': '.pql', 'pygments_lexer': 'go', } banner = "Preql" def do_execute(self, code, silent, store_history=True, user_expressions=None, allow_stdin=False):
"""Start a Preql interactive environment with an airports table, based on a JSON url. Uses pandas for reading and handling the JSON file. """ import pandas as pd from preql import Preql AIRPORTS_JSON_URL = 'https://gist.githubusercontent.com/tdreyno/4278655/raw/7b0762c09b519f40397e4c3e100b097d861f5588/airports.json' airports = pd.read_json(AIRPORTS_JSON_URL) p = Preql() p.import_pandas(airports_full=airports) p(''' // Remove unhelpful fields airports = airports_full{... !url !tz !phone !email !type} // All airports sorted by elevation (highest first) airports_by_highest = airports order {^elev} // Count of airports in each country, sorted by highest airports_by_country = airports {country => airport_count: count()} order {^airport_count} ''') p.start_repl()
def Preql(self, **kw): settings.optimize = self.optimized preql = Preql(self.uri, **kw) self.preql = preql return preql