def __init__(self, uri, create=False, server=None, pool_instance=None, filters=None): """Constructor for Database @param uri: str, Database uri @param create: boolean, False by default, if True try to create the database. @param server: Server instance """ self.uri = uri self.server_uri, self.dbname = uri.rsplit("/", 1) if server is not None: if not hasattr(server, 'next_uuid'): raise TypeError('%s is not a couchdbkit.Server instance' % server.__class__.__name__) self.server = server else: self.server = server = Server(self.server_uri, pool_instance=pool_instance, filters=filters) validate_dbname(self.dbname) if create: try: self.server.res.head('/%s/' % self.dbname) except ResourceNotFound: self.server.res.put('/%s/' % self.dbname) self.res = server.res(self.dbname)
def create_db(self, dbname): """ Create a database on CouchDb host @param dname: str, name of db @return: Database instance if it's ok or dict message """ _dbname = url_quote(validate_dbname(dbname), safe=":") res = self.res.put('/%s/' % _dbname) if res['ok']: return Database(self, dbname) return res['ok']
def __init__(self, server, dbname): """Constructor for Database @param server: Server instance @param dbname: str, name of database """ if not hasattr(server, 'next_uuid'): raise TypeError('%s is not a couchdbkit.server instance' % server.__class__.__name__) self.dbname = validate_dbname(dbname) self.server = server self.res = server.res.clone() if "/" in dbname: self.res.client.safe = ":/%" self.res.update_uri('/%s' % url_quote(dbname, safe=":"))