def main(): load_config() __connection__ = hub = PackageHub("bodhi") if len(sys.argv) != 2: print "Usage: %s <release>" % sys.argv[0] sys.exit(1) try: release = Release.byName(sys.argv[1].upper()) except SQLObjectNotFound: print "Cannot find Release '%s'" % sys.argv[1] sys.exit(1) updates = PackageUpdate.select(PackageUpdate.q.releaseID == release.id) progress = ProgressBar(maxValue=updates.count()) print "Destroying all updates, comments, and bugs associated with %s" % release.name for update in updates: for comment in update.comments: comment.destroySelf() for build in update.builds: build.destroySelf() for bug in update.bugs: if len(bug.updates) == 1: bug.destroySelf() update.destroySelf() progress() release.destroySelf() hub.commit() print
import dejavu import turbogears from turbogears import controllers, expose from cherrypy import request, response from dejagears.model import Page from docutils.core import publish_parts from turbojson import jsonify import cherrypy import re import datetime from turbogears.identity.djprovider import TG_User, TG_Group, TG_UserGroup, TG_Permission, TG_GroupPermission from turbogears import widgets from model import Team, Player hub = PackageHub("dejagears") __connection__ = hub TEMPLATE = ''' <table xmlns:py="http://purl.org/kid/ns#" class="simpleroster" border="1"> <tr> <span py:if="isinstance(fields,dict)"> <span py:for="key in fields" py:strip="True"> <span py:for="field in fields[key]" py:strip="True"> <th py:content="field[0]"/> </span> </span> </span> <span py:if="isinstance(fields,list)"> <span py:for="field in fields" py:strip="True"> <th py:content="field[0]"/>
from turbogears.database import PackageHub import dejavu from dejavu import UnitProperty, Unit, UnitSequencer import datetime import logging hub = PackageHub("dejagears") __connection__ = hub class Page(Unit): pagename = UnitProperty(unicode,index=True,hints={"bytes":30}) data = UnitProperty(unicode,hints={"bytes":0}) class Player(Unit): name = UnitProperty(unicode,index=True,hints={"bytes":40}) birthdate = UnitProperty(datetime.date) team = UnitProperty(int) points = UnitProperty(int,hints={"default":0}) class Team(Unit): city = UnitProperty(str,hints={"bytes":20}) nickname = UnitProperty(str,index=True,hints={"bytes":20}) Team.one_to_many('ID',Player,'team') # Auto set up the database, only if it does not already exists log = logging.getLogger("turbogears.database") arena = hub.getConnection().arena arena.register_all(globals()) """
from turbogears.database import PackageHub from sqlobject import * hub = PackageHub('agenda') __connection__ = hub class Persona(SQLObject): nombre = StringCol() telefono = StringCol() email = StringCol() citas = MultipleJoin('Cita', joinColumn='cita_id') class Cita(SQLObject): asunto = StringCol() inicio = DateTimeCol() duracion = IntCol() persona = ForeignKey('Persona') # Crear las tablas (Si no existen), al cargar este modulo for table in [Persona, Cita]: table.createTable(ifNotExists=True)
from datetime import datetime from turbogears.database import PackageHub from sqlobject import * from turbogears import identity hub = PackageHub('tumpire') __connection__ = hub # class YourDataClass(SQLObject): # pass # identity models. class Visit(SQLObject): """ A visit to your site """ class sqlmeta: table = 'visit' visit_key = StringCol(length=40, alternateID=True, alternateMethodName='by_visit_key') created = DateTimeCol(default=datetime.now) expiry = DateTimeCol() def lookup_visit(cls, visit_key): try: return cls.by_visit_key(visit_key) except SQLObjectNotFound: return None lookup_visit = classmethod(lookup_visit)
from turbogears.database import PackageHub __connection__ = hub = PackageHub('tgpisa')
import datetime from turbogears.visit.api import BaseVisitManager, Visit from turbogears.database import PackageHub from turbogears import config from turbogears.util import load_class from dejavu import Unit, UnitProperty, UnitSequencer import turbogears import dejavu hub = PackageHub("turbogears.visit") __connection__ = hub import logging log = logging.getLogger("turbogears.visit") visit_class = None class DejavuVisitManager(BaseVisitManager): def __init__(self, timeout): global visit_class super(DejavuVisitManager, self).__init__(timeout) visit_class_path = config.get("visit.djprovider.model", __name__ + ".TG_Visit") visit_class = load_class(visit_class_path) if visit_class: log.info("Succesfully loaded \"%s\"" % visit_class_path) def create_model(self): global visit_class
from turbogears.database import PackageHub from sqlobject import * hub = PackageHub('validator') __connection__ = hub # class YourDataClass(SQLObject): # pass
import dejavu, cherrypy, cPickle, logging, datetime from dejavu import Unit, UnitProperty, UnitSequencer from turbogears.database import PackageHub import turbogears from turbogears.util import load_class hub = PackageHub("turbogears.session_filter") __connection__ = hub log = logging.getLogger("turbogears.session_filter") session_class = None class DejavuStorage: def __init__(self): global session_class session_class_path = turbogears.config.get( "session_filter.storage_table", __name__ + ".TG_Session") session_class = load_class(session_class_path) arena = hub.getConnection().arena try: if not arena._registered_classes.has_key(session_class): arena.register(session_class) if not arena.has_storage(session_class): arena.create_storage(session_class) except Exception, e: log.info(str(e)) def load(self, id): global session_class
"""This module contains the data model of the application.""" import pkg_resources pkg_resources.require("SQLObject>=0.10.1") from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin from sqlobject.inheritance import InheritableSQLObject # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol __connection__ = hub = PackageHub('protdigest1') # your data model # class YourDataClass(SQLObject): # pass # functions for populating the database def bootstrap_model(clean=False): """Create all database tables and fill them with default data.
"""This module contains the data model of the application.""" import pkg_resources pkg_resources.require("SQLObject>=0.10.1") from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin from sqlobject.inheritance import InheritableSQLObject # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol __connection__ = hub = PackageHub('proteindigest') # your data model # class YourDataClass(SQLObject): # pass # functions for populating the database def bootstrap_model(clean=False): """Create all database tables and fill them with default data.
from sqlobject import * from turbogears.database import PackageHub hub = PackageHub("pytilsex") __connection__ = hub # class YourDataClass(SQLObject): # pass
import math,re from sqlobject import * from turbogears.database import PackageHub from datetime import datetime from sqlobject.main import SQLObjectNotFound import _mysql_exceptions hub = PackageHub("projector") __connection__ = hub def lastUpdate(): results = Node._connection.queryOne(""" SELECT MAX(changed) FROM node """) if results[0]: return datetime.fromtimestamp(results[0]) else: return datetime.fromtimestamp(0) def lastCommentUpdate(): ### only count non gotchis (they have no filename) results = Node._connection.queryOne(""" SELECT UNIX_TIMESTAMP(MAX(timestamp)) FROM projector_upload WHERE filename = '' """) if results[0]: return datetime.fromtimestamp(results[0]) else: return datetime.fromtimestamp(0) class Term(SQLObject):
from datetime import datetime from turbogears.database import PackageHub from sqlobject import * from turbogears import identity #added for iskonline from mx.DateTime import now import string hub = PackageHub('infoshopkeeperonline') __connection__ = hub # class YourDataClass(SQLObject): # pass # identity models. class Visit(SQLObject): """ A visit to your site """ class sqlmeta: table = 'visit' visit_key = StringCol(length=40, alternateID=True, alternateMethodName='by_visit_key') created = DateTimeCol(default=datetime.now) expiry = DateTimeCol() def lookup_visit(cls, visit_key):
from sqlobject import * from turbogears.database import PackageHub hub = PackageHub("topicalizer") __connection__ = hub class token_by_category(SQLObject): token = StringCol() category = StringCol() class co_occurrence(SQLObject): token = StringCol() co_occurs_with = IntCol() count = IntCol()
import sys import time import cPickle as pickle from os.path import isfile from sqlobject import SQLObjectNotFound from turbogears.database import PackageHub from bodhi.util import ProgressBar, load_config from bodhi.exceptions import (DuplicateEntryError, SQLiteIntegrityError, PostgresIntegrityError) from bodhi.model import (PackageUpdate, Release, Comment, Bugzilla, CVE, Package, PackageBuild) hub = __connection__ = PackageHub("bodhi") def save_db(): ## Save each release and it's metrics releases = [] for release in Release.select(): rel = {} for attr in ('name', 'long_name', 'id_prefix', 'dist_tag', 'locked', 'metrics'): rel[attr] = getattr(release, attr) releases.append(rel) updates = [] all_updates = PackageUpdate.select() progress = ProgressBar(maxValue=all_updates.count())
from datetime import datetime import pkg_resources pkg_resources.require("SQLObject>=0.7.1") from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol from turbogears import identity __connection__ = hub = PackageHub('grooserv') # your data model # class YourDataClass(SQLObject): # pass # the identity model class Visit(SQLObject): """ A visit to your site """ class sqlmeta: table = 'visit' visit_key = StringCol(length=40, alternateID=True,
# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol __connection__ = hub = PackageHub('livechat') # your data model # class YourDataClass(SQLObject): # pass # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
def main(): load_config() __connection__ = hub = PackageHub("bodhi") koji = get_session() tasks = [] broke = set() # Clean up any stray pending tags for release in Release.select(): print "Finding all pending-testing builds..." if release.name.startswith('EL'): continue tag = release.pending_testing_tag tagged = [build['nvr'] for build in koji.listTagged(tag)] for nvr in tagged: try: build = PackageBuild.byNvr(nvr) for update in build.updates: if update.status in ('testing', 'stable', 'obsolete'): print "%s %s" % (nvr, update.status) if '--fix' in sys.argv: print "Untagging %s" % nvr koji.untagBuild(tag, nvr, force=True) except SQLObjectNotFound: print "Can't find build for %s" % nvr if '--fix' in sys.argv: print "Untagging %s" % nvr koji.untagBuild(tag, nvr, force=True) tag = release.pending_stable_tag tagged = [build['nvr'] for build in koji.listTagged(tag)] for nvr in tagged: try: build = PackageBuild.byNvr(nvr) for update in build.updates: if update.status in ('pending', 'obsolete', 'stable'): print "%s %s" % (nvr, update.status) if '--fix' in sys.argv: print "Untagging %s" % nvr koji.untagBuild(tag, nvr, force=True) except SQLObjectNotFound: print "Can't find build for %s" % nvr if '--fix' in sys.argv: print "Untagging %s" % nvr koji.untagBuild(tag, nvr, force=True) # Check for testing updates that aren't tagged properly for update in PackageUpdate.select(PackageUpdate.q.status == 'testing'): dest_tag = update.release.testing_tag for build in update.builds: tags = [tag['name'] for tag in koji.listTags(build=build.nvr)] if dest_tag not in tags: print "%s marked as testing, but tagged with %s" % (build.nvr, tags) if '--fix' in sys.argv: broke.add((tags[0], dest_tag, build.nvr)) # Check all candidate updates to see if they are in a different bodhi state for release in Release.select(): tag = release.candidate_tag tagged = [build['nvr'] for build in koji.listTagged(tag, latest=True)] for nvr in tagged: try: build = PackageBuild.byNvr(nvr) for update in build.updates: if update.status in ('testing', 'stable'): print "%s %s but tagged as %s" % (nvr, update.status, tag) if '--fix' in sys.argv: dest = release.testing_tag if update.status == 'stable': dest = release.stable_tag elif update.status == 'obsolete': dest = release.candidate_tag broke.add((tag, dest, nvr)) except SQLObjectNotFound: pass # Make sure that all builds in koji tagged as an update exist # in bodhi, and are in the expect state. for release in Release.select(): for tag in (release.testing_tag, release.stable_tag): tagged = [ build['nvr'] for build in koji.listTagged(tag, latest=True) ] for nvr in tagged: try: build = PackageBuild.byNvr(nvr) except SQLObjectNotFound: print "PackageUpdate(%s) not found!" % nvr continue if not len(build.updates): print "PackageBuild(%s) has no updates" % (build.nvr) status = 'testing' in tag and 'testing' or 'stable' for update in build.updates: if update.status != status: print "%s is %s in bodhi but tagged as %s in koji" % ( update.title, update.status, tag) if '--fix' in sys.argv: dest = release.testing_tag if update.status == 'stable': dest = release.stable_tag elif update.status == 'obsolete': dest = release.candidate_tag for b in update.builds: broke.add((tag, dest, b.nvr)) if broke: print " ** Fixing broken tags! **" koji.multicall = True for tag, dest, build in broke: print "Moving %s from %s to %s" % (build, tag, dest) koji.moveBuild(tag, dest, build, force=True) print "Running koji.multiCall()" results = koji.multiCall() success = False print "Waiting for tasks" bad_tasks = wait_for_tasks([task[0] for task in results]) if bad_tasks == 0: success = True if success: print "Tags successfully moved!" else: print "Error moving tags!" print "bad_tasks = %r" % bad_tasks
from sqlobject.inheritance import InheritableSQLObject import warnings import logging log = logging.getLogger("turbogears.identity.soprovider") import cherrypy import turbogears from turbogears import identity from turbogears.database import PackageHub from turbogears.util import load_class from turbogears.identity import set_login_attempted from turbojson.jsonify import jsonify_sqlobject, jsonify hub = PackageHub("turbogears.identity") __connection__ = hub try: set, frozenset except NameError: # Python 2.3 from sets import Set as set, ImmutableSet as frozenset def to_db_encoding(s, encoding): if isinstance(s, str): pass elif hasattr(s, '__unicode__'): s = unicode(s) if isinstance(s, unicode): s = s.encode(encoding)
import pkg_resources pkg_resources.require("SQLObject>=0.10.1") from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol __connection__ = hub = PackageHub('erpcomparator') # your data model # class YourDataClass(SQLObject): # pass
from turbogears.database import PackageHub from sqlobject import * hub = PackageHub("simtest") __connection__ = hub # class YourDataClass(SQLObject): # pass
""" this is the data model for the project """ __revision__ = "$Revision" from datetime import datetime from turbogears.database import PackageHub import sqlobject as orm from turbogears import identity HUB = PackageHub("sonar") __connection__ = HUB # class YourDataClass(SQLObject): # pass # identity models. class Visit(orm.SQLObject): #pylint: disable-msg=R0904 """ keep track of user visits """ class sqlmeta: #pylint: disable-msg=C0103,R0903 """ names like "Group", "Order" and "User" are reserved words in SQL so we set the name to something safe for SQL """ table = "visit" visit_key = orm.col.StringCol(length=40,
See the COPYING file for more details. """ from datetime import datetime import pkg_resources pkg_resources.require("SQLObject>=0.8") from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol from turbogears import identity __connection__ = hub = PackageHub('wesstats') # your data model # class YourDataClass(SQLObject): # pass # the identity model class Visit(SQLObject): """ A visit to your site """ class sqlmeta: table = 'visit'
from turbogears.database import PackageHub from sqlobject import * hub = PackageHub("roboide") __connection__ = hub # Holds ID to team name mappings class TeamNames(SQLObject): name = StringCol() # Holds the setting name -> ID mapping class Settings(SQLObject): # The setting name name = StringCol() # The setting description description = StringCol() class RoboPresent(SQLObject): team = ForeignKey('TeamNames') present = BoolCol() class RoboLogs(SQLObject): #The team team = ForeignKey('TeamNames') #Time log was written date = DateTimeCol(default=DateTimeCol.now) #Value written
try: from sqlobject import * from turbogears.database import PackageHub except ImportError: pass else: from datetime import * hub = PackageHub("turbogears.i18n.sogettext") __connection__ = hub class TG_Domain(SQLObject): name = StringCol(alternateID=True) messages = MultipleJoin("TG_Message") class sqlmeta: table = "tg_i18n_domain" defaultOrder = "name" class TG_Message(SQLObject): name = UnicodeCol() text = UnicodeCol(default="") domain = ForeignKey("TG_Domain") locale = StringCol(length=15)
# You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. """ Bodhi Initialization """ __requires__ = 'bodhi' from os.path import isfile from turbogears import config, update_config from turbogears.database import PackageHub from bodhi.util import ProgressBar, load_config hub = PackageHub("bodhi") __connection__ = hub # Releases to initialize bodhi with. # When running `make init` or pickledb.py, this is unnecessary, as the db # snapshot stores this data and will populate it for us. releases = () # { # 'name' : 'F8', # 'long_name' : 'Fedora 8', # 'dist_tag' : 'dist-f8', # 'id_prefix' : 'FEDORA' # }, #)
import pkg_resources pkg_resources.require("SQLObject>=0.8,<=0.10.0") from turbogears.database import PackageHub # import some basic SQLObject classes for declaring the data model # (see http://www.sqlobject.org/SQLObject.html#declaring-the-class) from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin # import some datatypes for table columns from SQLObject # (see http://www.sqlobject.org/SQLObject.html#column-types for more) from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol __connection__ = hub = PackageHub('wiki20') # your data model class Page(SQLObject): pagename = UnicodeCol(alternateID=True, length=30) data = UnicodeCol() # class YourDataClass(SQLObject): # pass