def push(self): design_root_dir = os.path.join(self.file_dir, '_design') # TODO: Handle deleted design documents for dir in os.listdir(design_root_dir): design_dir = os.path.join(design_root_dir, dir) push(design_dir, self.heimdall_db)
def define_views(db): """Purely administrative. Done once (or so) to set the views. Similar to the way that couchapp works. https://github.com/couchapp/couchapp/tree/ """ for app in apps: push(app, db)
def __init__(self): # handle zmq setup zmq_port = os.environ['PERSIST_RESPONSE_PORT'] context = zmq.Context() socket = context.socket(zmq.REP) self.socket = socket # now, setup couchdb db_port = os.environ.get('COUCH_PORT', '5984') db_server = os.environ.get('COUCH_HOST', '127.0.0.1') views_path = os.environ['COUCH_VIEWS_LOCATION'] couch = couchdbkit.Server(uri='http://%s:%s' % (db_server, db_port)) db = couch.get_or_create_db('flags') push(views_path, db) Flag.set_db(db)
def delAndPurge(): """ """ parser = argparse.ArgumentParser() parser.add_argument('--conf', help='wsgi conf file') parser.add_argument('--userid', help='user id') args = parser.parse_args() config = ConfigParser.RawConfigParser() config.read(args.conf) server = couchdbkit.Server(config.get('app:main', 'couchdb.url')) db = server.get_or_create_db(config.get('app:main','couchdb.db')) User.set_db(db) Link.set_db(db) push('couchdb/_design/purge', db) try: user = User.get(args.userid) user.delete() print "%s is now deleted" % args.userid except couchdbkit.exceptions.ResourceNotFound: print "%s not found" % args.userid links = Link.view('purge/all', key=args.userid, include_docs=True) print "%d links found" % len(links) for link in links: link.delete() print "job done"
class UserModel(object): def __init__(self): self.is_login = True self.id = 100 self.permission = UserPermission.root self.name = 'Kelp' self.email = '*****@*****.**' # ----------------------------------------------- # couch db documents # ----------------------------------------------- server = Server(uri=get_db_url()) db = server.get_or_create_db('blog') # push views of posts to database. push(os.path.join(os.path.dirname(__file__), '_design', 'posts'), db) class PostModel(Document): """ The post data model. """ title = StringProperty() content = StringProperty() create_time = DateTimeProperty(default=datetime.utcnow) def dict(self): return { 'id': self._id, 'title': self.title, 'content': self.content, 'create_time': self.create_time.strftime('%Y-%m-%dT%H:%M:%S.%fZ') }
server = couchdbkit.Server(settings['couchdb.url']) db = server.get_or_create_db(settings['couchdb.db']) User.set_db(db) Link.set_db(db) for view in ['couchdb/_design/user', 'couchdb/_design/public', 'couchdb/_design/user_link', 'couchdb/_design/my_link', 'couchdb/_design/viewTag', 'couchdb/_design/viewFollowers', 'couchdb/_design/contacts_links', 'couchdb/_design/tags', ]: push(view, db) avatarSize = 128,128 def limitAndPage(request): """ Set the limit and default page. """ # TODO validators ? limit = 10 page = 0 if 'limit' in request.GET: try: limit = int(request.GET['limit']) except ValueError:
class UserModel(object): def __init__(self): self.is_login = True self.id = 100 self.permission = UserPermission.root self.name = 'Kelp' self.email = '*****@*****.**' # ----------------------------------------------- # couch db documents # ----------------------------------------------- server = Server(uri=get_db_url()) db = server.get_or_create_db('blog') # push views of posts to database. push(os.path.join(os.path.dirname(__file__), '_design', 'posts'), db) class PostModel(Document): """ The post data model. """ title = StringProperty() content = StringProperty() create_time = DateTimeProperty(default=datetime.utcnow) def dict(self): return { 'id': self._id, 'title': self.title, 'content': self.content,
import couchdbkit from couchdbkit.designer import push from model import StorageFile context = zmq.Context() # server object server = couchdbkit.Server() # create database db = server.get_or_create_db('timelapse') StorageFile.set_db(db) push('couchdb/_design/storagefile', db) @view_config(route_name='home', renderer='templates/home.pt') def home(request): return {'project':'cyplp.timelapse_commander'} @view_config(route_name='controls', renderer='templates/controls.pt') def controls(request): orderEmetter = context.socket(zmq.REQ) orderEmetter.connect("tcp://127.0.0.1:5559") # TODO timeout orderEmetter.send_json({'command': 'status'}) status = orderEmetter.recv_json() return {'status': status}
from couchdbkit import Server from couchdbkit.designer import push import config as cfg if __name__ == "__main__": server = Server(cfg.server) db = server.get_or_create_db(cfg.db) push("./mqdb/_design/message", db)
def addView(self, design_doc, workspaceDB): designer.push(design_doc, workspaceDB, atomic = False)
def sync(self, dbs, atomic=True, **kwargs): push(self.design_path, dbs, atomic=atomic, docid=self.design_name)
def setUpModule(): content = dict( agency= """\ agency_name,agency_url,agency_timezone Hampton Roads Transit (HRT),http://www.gohrt.com/,America/New_York """, # Real Data # calendar= """\ #service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date #WE,1,1,1,1,1,0,0,20120122,20121229 #MR,1,1,1,1,0,0,0,20120122,20121229 #""", calendar= """\ service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date WE,1,1,1,1,1,0,0,20120122,20120601 MR,1,1,1,1,0,0,0,20120122,20120601 """, calendar_dates= """\ service_id,date,exception_type WE,20120528,2 SA,20120528,1 """, fare_attributes= """\ fare_id,price,currency_type,payment_method,transfers 1,1.50,USD,0,2 """, fare_rules= """\ fare_id,route_id 1,001 """, routes= """\ route_id,route_short_name,route_long_name,route_desc,route_type,route_url 001,1,GRANBY ST, Downtown Norfolk Pembroke East ,3,http://www.gohrt.com/routes/route-1.pdf 004,4,CHURCH ST, Norfolk General Hospital/ODU/Downtown Norfolk ,3,http://www.gohrt.com/routes/route-4.pdf 090,90,ELIZABETH RIVER FERRY, Norfolk/Portsmouth Ferry,4,http://www.gohrt.com/services/paddlewheel-ferry#schedule """, stop_times= """\ trip_id,arrival_time,departure_time,stop_id,stop_sequence,timepoint 1,7:15:00,7:15:00,F001,1,1 53651,5:19:00,5:19:00,0020,7,0 53678,6:33:00,6:33:00,0001,4,0 53678,6:38:00,6:38:00,0406,5,0 """, stops= """\ stop_id,stop_name,stop_lat,stop_lon 0001,CHARLOTTE & MONTICELLO,36.85192,-76.28732 0020,GRANBY & 33RD,36.87707,-76.28177 2111,WEAVER & MARTHA LEE,37.02489,-76.42312 0406,CHURCH & OLNEY,36.85400,-76.27973 F001,FERRY STOP - WATERSIDE,36.84403,-76.28941 """, trips= """\ route_id,service_id,trip_id,direction_id,block_id 090,WE,1,0,090 - 1 001,MR,53651,0,001 - 3 004,MR,53678,0,004 - 2 """, ) try: os.remove( "test.zip" ) except OSError: pass z= zipfile.ZipFile( "test.zip", 'w' ) for c in content: z.writestr( c+".txt", content[c] ) z.close() global connection, db connection = Server() db = connection.get_or_create_db('couchdbkit_test') push('_design/service', db) loader = caravel.transit_system.load.Loader() loader.load( "test.zip" )
from models import ToStore settings = get_current_registry().settings # server object server = couchdbkit.Server(settings['couchdb.url']) # create database db = server.get_or_create_db(settings['couchdb.db']) ToStore.set_db(db) here = os.path.dirname(__file__) for view in ['list']: path = os.path.join(here, 'couchdb', '_design', view) push(path, db) @view_config(route_name='listing', renderer='templates/listing.pt') def list_view(request): stored = ToStore.view( 'list/all', descending=True, ) return {'file_list': stored} @view_config(route_name='new', renderer='json', request_method='POST') def new_view(request): if request.POST.get('fdescr', 'fname'): # TODO descripton = request.POST['description']
from models import ToStore settings = get_current_registry().settings # server object server = couchdbkit.Server(settings['couchdb.url']) # create database db = server.get_or_create_db(settings['couchdb.db']) ToStore.set_db(db) here = os.path.dirname(__file__) for view in ['list']: path = os.path.join(here, 'couchdb', '_design', view) push(path, db) @view_config(route_name='listing', renderer='templates/listing.pt') def list_view(request): stored = ToStore.view('list/all', descending=True,) return {'file_list': stored} @view_config(route_name='new', renderer='json', request_method='POST') def new_view(request): if request.POST.get('fdescr', 'fname'): # TODO descripton = request.POST['description'] filename = request.POST['filename'].filename inputFile = request.POST['filename'].file
def setUpModule(): global connection, db connection = Server() db = connection.get_or_create_db('couchdbkit_test') push('_design/mapping', db)
from couchdbkit import Server, Document, StringProperty from couchdbkit.designer import push try: import simplejson as json except ImportError: import json import mimerender mimerender = mimerender.BottleMimeRender() couch = Server() db = couch.get_or_create_db('simple-todo') push('db/todolist', db) push('db/todo', db) class TodoList(Document): pass class Todo(Document): title = StringProperty() priority = StringProperty() todolist = StringProperty() TodoList.set_db(db) Todo.set_db(db) @route('/static/:filepath#.*#') def server_static(filepath):
def addView(self, design_doc, workspaceDB): designer.push(design_doc, workspaceDB, atomic=False)
def __init__(self): server = Server() self.db = server.get_or_create_db('stocktools') push('_design/stockdocument', self.db) print "pushed OK" StockDocument.set_db(self.db)