Skip to content

Instantly share code, notes, and snippets.

@absent1706
Created July 27, 2016 10:38
Show Gist options
  • Save absent1706/90c57301293846da0ef1e1bc21877c1f to your computer and use it in GitHub Desktop.
Save absent1706/90c57301293846da0ef1e1bc21877c1f to your computer and use it in GitHub Desktop.
GAE env files
@echo off
set "VIRTUAL_ENV=E:\Web.LOCAL\Python\projects\knowstory\env"
set "ROOT_DIR=E:\Web.LOCAL\Python\projects\knowstory"
if defined _OLD_VIRTUAL_PROMPT (
set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
) else (
if not defined PROMPT (
set "PROMPT=$P$G"
)
set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
)
set "PROMPT=(env) %PROMPT%"
if not defined _OLD_VIRTUAL_PYTHONHOME (
set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
)
set PYTHONHOME=
if defined _OLD_VIRTUAL_PATH (
set "PATH=%_OLD_VIRTUAL_PATH%"
) else (
set "_OLD_VIRTUAL_PATH=%PATH%"
)
set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"
rem CUSTOM
set "PYTHONPATH=%ROOT_DIR%;%VIRTUAL_ENV%\lib\site-packages;%ROOT_DIR%\knowstory;E:\\Python\\Lib\\site-packages;%PYTHONPATH%"
set "GAEPATH=C:\Program Files (x86)\Google\google_appengine"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\cherrypy"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\cherrypy"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\fancy_urllib"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\yaml-3.10"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\antlr3"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\concurrent"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\ipaddr"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\jinja2-2.6"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\webob-1.2.3"
rem set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\webapp2-2.5.1"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\mox"
set "PYTHONPATH=%PYTHONPATH%;%GAEPATH%\lib\protorpc-1.0"
rem set "PYTHONSTARTUP=%VIRTUAL_ENV%\shell.py"
rem set "SQL_ALCHEMY_ECHO=True"
rem Start Memcache service
start/B %VIRTUAL_ENV%\memcached-amd64\memcached.exe
:END
mysqladmin -uroot -f drop knowstory_test && mysqladmin -uroot create knowstory_test
mysqladmin -uroot -f drop knowstory && mysqladmin -uroot create knowstory
set "OLD_SQL_ALCHEMY_ECHO=%SQL_ALCHEMY_ECHO%"
set "SQL_ALCHEMY_ECHO=False"
python fake_data_db_generator\main.py
set "SQL_ALCHEMY_ECHO=%OLD_SQL_ALCHEMY_ECHO%"
# for autocompletion
import rlcompleter, readline
readline.parse_and_bind('tab:complete')
if __name__ == '__main__':
import os
os.environ['CURRENT_ENV'] = 'DEV'
os.environ['SQL_ALCHEMY_ECHO'] = 'True'
from pprint import pprint as pp
from server.models.base import SessionContainer
from server.models import *
from server.processors import *
from server.testing_tools import *
from sqlalchemy import *
from sqlalchemy.orm import *
from marshmallow import fields
from server.utils import *
from server.const import *
import server
import server.models as models
import server.processors as proc
db = SessionContainer()
u = db.query(User).filter(User.email=='[email protected]').first()
user_id = u.user_id
school = u.educator_school
grades = db.query(Grade).filter(Grade.order.between(school.grade_from.order,school.grade_to.order)).all()
grade_ids = [g.grade_id for g in grades]
standards = db.query(Standard).filter(Standard.grade_id.in_(grade_ids)).all()
# school.standards
subject_ids = list(set([s.subject_id for s in standards]))
subjects = db.query(Subject).filter(Subject.subject_id.in_(subject_ids)).all()
standard_ids = [s.standard_id for s in standards] # 167 count
#
# all products
# standard_ids=[672]
# query = db.query(Product).filter(Product.standards_bindings.any(ProductStandard.standard_id.in_(standard_ids)))
# all_products = query.all()
# school_products = query.filter(Product.library_users.any(User.is_member_of(school.school_id))).all()
# take standards having grade with order
# between <school grade from> and <school grade to>
q = db.session.query(Standard)\
.filter(Standard.grade.any(
Grade.order.between(school.grade_from.order,school.grade_to.order)))
# subquery for marketplace products
market_prod = aliased(Product)
market_prods = db.session.query(market_prod.product_id).subquery()
# subquery for school inventory products
invent_prod = aliased(Product)
invent_prods = db.session.query(invent_prod.product_id).filter(invent_prod.in_school_inventory(school.school_id)).subquery()
items = q\
.add_column(func.count(distinct(market_prods.c.product_id)) \
.label('marketplace_product_count')) \
.outerjoin(market_prods,
Standard.products.any(ProductStandard.product_id \
== market_prods.c.product_id)) \
.add_column(func.count(distinct(invent_prods.c.product_id)) \
.label('inventory_product_count')) \
.outerjoin(invent_prods,
Standard.products.any(ProductStandard.product_id \
== invent_prods.c.product_id)) \
.group_by(Standard.standard_id) \
.all()
standards = []
for item in items:
standard = item.Standard
standard.marketplace_product_count = item.marketplace_product_count
standard.inventory_product_count = item.inventory_product_count
standards.append(standard)
# return standards
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment