def by_id(cls, id, conn=None, google_user=None, google_password=None): """ Open a spreadsheet via its resource ID. This is more precise than opening a document by title, and should be used with preference. """ conn = Connection.connect(conn=conn, google_user=google_user, google_password=google_password) return cls(id=id, conn=conn)
def create(cls, title, conn=None, google_user=None, google_password=None): """ Create a new spreadsheet with the given ``title``. """ conn = Connection.connect(conn=conn, google_user=google_user, google_password=google_password) res = Resource(type='spreadsheet', title=title) res = conn.docs_client.CreateResource(res) id = res.id.text.rsplit('%3A', 1)[-1] return cls(id, conn, resource=res)
def by_title(cls, title, conn=None, google_user=None, google_password=None): """ Open the first document with the given ``title`` that is returned by document search. """ conn = Connection.connect(conn=conn, google_user=google_user, google_password=google_password) q = DocsQuery(categories=['spreadsheet'], title=title) feed = conn.docs_client.GetResources(q=q) for entry in feed.entry: if entry.title.text == title: id = entry.id.text.rsplit('%3A', 1)[-1] return cls.by_id(id, conn=conn)