我们从Python开源项目中,提取了以下48个代码示例,用于说明如何使用resource.Resource()。
def getChild(self, path, request): if path == '': # ZOOP! if isinstance(self, Widget): return self.pageFactory(self) widget = self.getWidget(path, request) if widget: if isinstance(widget, resource.Resource): return widget else: p = self.pageFactory(widget) p.isLeaf = getattr(widget,'isLeaf',0) return p elif self.paths.has_key(path): prefix = getattr(sys.modules[self.__module__], '__file__', '') if prefix: prefix = os.path.abspath(os.path.dirname(prefix)) return static.File(os.path.join(prefix, self.paths[path])) elif path == '__reload__': return self.pageFactory(Reloader(map(reflect.namedModule, [self.__module__] + self.modules))) else: return error.NoResource("No such child resource in gadget.")
def __init__(self, reqauth, sessionIdentity=None, sessionPerspective=None): """Initialize, specifying various options. @param reqauth: a web.resource.Resource instance, indicating which resource a user will be logging into with this form; this must specify a serviceName attribute which indicates the name of the service from which perspectives will be requested. @param sessionIdentity: if specified, the name of the attribute on the user's session to set for the identity they get from logging in to this form. @param sessionPerspective: if specified, the name of the attribute on the user's session to set for the perspective they get from logging in to this form. """ self.reqauth = reqauth self.sessionPerspective = sessionPerspective self.sessionIdentity = sessionIdentity
def __init__(self, widget): self.widget = widget resource.Resource.__init__(self)
def __init__(self): resource.Resource.__init__(self) Presentation.__init__(self)
def __init__(self): resource.Resource.__init__(self) self.widgets = {} self.files = [] self.modules = [] self.paths = {}
def pageFactory(self, *args, **kwargs): """ Gadget.pageFactory(*args, **kwargs) -> Resource By default, this method returns self.page(*args, **kwargs). It is only for backwards-compatibility -- you should set the 'pageFactory' attribute on your Gadget inside of its __init__ method. """ #XXX: delete this after a while. if hasattr(self, "page"): log.msg("Gadget.page is deprecated, use Gadget.pageFactory instead") return apply(self.page, args, kwargs) else: return apply(WidgetPage, args, kwargs)
def __init__(self, path, registry=None): resource.Resource.__init__(self) self.path = path self.registry = registry or static.Registry()
def __init__(self, pathname, registry=None): resource.Resource.__init__(self) self.path = pathname self.registry = registry or static.Registry()
def __init__(self): """Initialize. """ resource.Resource.__init__(self) self.hosts = {}
def listStaticEntities(self): return resource.Resource.listStaticEntities(self) + [("Virtual Hosts", VirtualHostCollection(self))]
def getStaticEntity(self, name): if name == "Virtual Hosts": return VirtualHostCollection(self) else: return resource.Resource.getStaticEntity(self, name)
def getChild(self, path, request): """Implementation of resource.Resource's getChild method. """ resrc = self._getResourceForRequest(request) if resrc.isLeaf: request.postpath.insert(0,request.prepath.pop(-1)) return resrc else: return resrc.getChildWithDefault(path, request)
def __init__(self, res, service, sessionIdentity=None, sessionPerspective=None): resource.Resource.__init__(self) self.res = res self.service = service self.sessionPerspective = sessionPerspective self.sessionIdentity = sessionIdentity
def __init__(self, host, port): resource.Resource.__init__(self) self.host = host self.port = port self.pending = [] self.publisher = None
def __init__(self, status, brief, detail): resource.Resource.__init__(self) self.code = status self.brief = brief self.detail = detail
def __init__(self, message="Sorry, resource is forbidden."): ErrorPage.__init__(self, http.FORBIDDEN, "Forbidden Resource", message)
def __init__(self, url): resource.Resource.__init__(self) self.url = url
def __init__(self, d): resource.Resource.__init__(self) self.d = d
def __init__(self, pathname): resource.Resource.__init__(self) filepath.FilePath.__init__(self, pathname)
def notify_observers(self, session, method): session.flush() if not hasattr(session, '_object_cache'): return obj_cache = session._object_cache new = obj_cache['new'] changed = obj_cache['changed'] deleted = obj_cache['deleted'] for obj in set(new): if isinstance(obj, (_package.Package, resource.Resource)): method(obj, domain_object.DomainObjectOperation.new) for obj in set(deleted): if isinstance(obj, (_package.Package, resource.Resource)): method(obj, domain_object.DomainObjectOperation.deleted) for obj in set(changed): if isinstance(obj, resource.Resource): method(obj, domain_object.DomainObjectOperation.changed) if getattr(obj, 'url_changed', False): for item in plugins.PluginImplementations(plugins.IResourceUrlChange): item.notify(obj) changed_pkgs = set(obj for obj in changed if isinstance(obj, _package.Package)) for obj in new | changed | deleted: if not isinstance(obj, _package.Package): try: related_packages = obj.related_packages() except AttributeError: continue # this is needed to sort out vdm bug where pkg.as_dict does not # work when the package is deleted. for package in related_packages: if package and package not in deleted | new: changed_pkgs.add(package) for obj in changed_pkgs: method(obj, domain_object.DomainObjectOperation.changed)
def add_resource(self, url, format=u'', description=u'', hash=u'', **kw): import resource self.resources_all.append(resource.Resource( package_id=self.id, url=url, format=format, description=description, hash=hash, **kw) )
def all_related_revisions(self): '''Returns chronological list of all object revisions related to this package. Includes PackageRevisions, PackageTagRevisions, PackageExtraRevisions and ResourceRevisions. @return List of tuples (revision, [list of object revisions of this revision]) Ordered by most recent first. ''' from tag import PackageTag from resource import Resource from package_extra import PackageExtra results = {} # revision:[PackageRevision1, PackageTagRevision1, etc.] for pkg_rev in self.all_revisions: if not results.has_key(pkg_rev.revision): results[pkg_rev.revision] = [] results[pkg_rev.revision].append(pkg_rev) for class_ in [Resource, PackageExtra, PackageTag]: rev_class = class_.__revision_class__ obj_revisions = meta.Session.query(rev_class).filter_by(package_id=self.id).all() for obj_rev in obj_revisions: if not results.has_key(obj_rev.revision): results[obj_rev.revision] = [] results[obj_rev.revision].append(obj_rev) result_list = results.items() ourcmp = lambda rev_tuple1, rev_tuple2: \ cmp(rev_tuple2[0].timestamp, rev_tuple1[0].timestamp) return sorted(result_list, cmp=ourcmp)
def initialize(self, resource): """ Initialize a project with a specific resource. Notes ----- This should only be called to setup the project and only the very first time. Parameters ---------- resource : `Resource` the resource used in this project """ self.storage.close() self.resource = resource st = MongoDBStorage(self.name, 'w') # st.create_store(ObjectStore('objs', None)) st.create_store(ObjectStore('generators', TaskGenerator)) st.create_store(ObjectStore('files', File)) st.create_store(ObjectStore('resources', Resource)) st.create_store(ObjectStore('models', Model)) st.create_store(ObjectStore('tasks', Task)) st.create_store(ObjectStore('workers', Worker)) st.create_store(ObjectStore('logs', LogEntry)) st.create_store(FileStore('data', DataDict)) # st.create_store(ObjectStore('commands', Command)) st.save(self.resource) st.close() self._open_db()
def all(self): """Gets all resources in cache. Arguments: None Returns: List[Resource] """ return self.resources.values()
def get(self, name, **kwargs): """Get an resource on the character. Arguments: name (string) - name of the resource used to store on character default (None) - default return value if resource not found Returns: Resource """ if self.resources.get(name): return self.resources[name] if 'default' in kwargs: return kwargs.get('default') raise AttributeError("could not find resource {}".format(name))
def _build_resource(self, **serialized_attr): """Return built resource given resource serialization. Arguments: serialized_attr (dict) - serialized resource Returns: Attribute or Resource """ return Resource(self.attrobj, **serialized_attr)
def makeResource(self, data): fuel = 0 ammo = 0 steel = 0 alum = 0 shipBlueprint = 0 equiptBlueprint = 0 fastRepair = 0 fastBuild = 0 if '2' in data: fuel = data['2'] if '3' in data: ammo = data['3'] if '4' in data: steel = data['4'] if '9' in data: alum = data['9'] return Resource(fuel, ammo, steel, alum, shipBlueprint, equiptBlueprint, fastRepair, fastBuild)
def diff(self, to_revision=None, from_revision=None): '''Overrides the diff in vdm, so that related obj revisions are diffed as well as PackageRevisions''' from tag import PackageTag from resource import Resource from package_extra import PackageExtra results = {} # field_name:diffs results.update(super(Package, self).diff(to_revision, from_revision)) # Iterate over PackageTag, PackageExtra, Resources etc. for obj_class in [Resource, PackageExtra, PackageTag]: obj_rev_class = obj_class.__revision_class__ # Query for object revisions related to this package obj_rev_query = meta.Session.query(obj_rev_class).\ filter_by(package_id=self.id).\ join('revision').\ order_by(core.Revision.timestamp.desc()) # Columns to include in the diff cols_to_diff = obj_class.revisioned_fields() cols_to_diff.remove('id') if obj_class is Resource: cols_to_diff.remove('package_id') # Particular object types are better known by an invariant field if obj_class is PackageTag: cols_to_diff.remove('tag_id') elif obj_class is PackageExtra: cols_to_diff.remove('key') # Iterate over each object ID # e.g. for PackageTag, iterate over Tag objects related_obj_ids = set([related_obj.id for related_obj in obj_rev_query.all()]) for related_obj_id in related_obj_ids: q = obj_rev_query.filter(obj_rev_class.id==related_obj_id) to_obj_rev, from_obj_rev = super(Package, self).\ get_obj_revisions_to_diff( q, to_revision, from_revision) for col in cols_to_diff: values = [getattr(obj_rev, col) if obj_rev else '' for obj_rev in (from_obj_rev, to_obj_rev)] value_diff = self._differ(*values) if value_diff: if obj_class.__name__ == 'PackageTag': display_id = to_obj_rev.tag.name elif obj_class.__name__ == 'PackageExtra': display_id = to_obj_rev.key else: display_id = related_obj_id[:4] key = '%s-%s-%s' % (obj_class.__name__, display_id, col) results[key] = value_diff return results
def get_scheduler(self, name=None, **kwargs): """ Parameters ---------- name : str name of the scheduler class provided by the `Resource` used in this project. If None (default) the cluster/queue ``default`` is used that needs to be implemented for every resource kwargs : ``**kwargs`` Additional arguments to initialize the cluster scheduler provided by the `Resource` Notes ----- the scheduler is automatically entered/opened so the pilot jobs is submitted to the queueing system and it counts against your simulation time! If you do not want to do so directly. Create the `Scheduler` by yourself and later call ``scheduler.enter(project)`` to start using it. To close the scheduler call ``scheduler.exit()`` Returns ------- `Scheduler` the scheduler object that can be used to execute tasks on that cluster/queue """ # get a new scheduler to submit tasks if name is None: scheduler = self.resource.default() else: scheduler = getattr(self.resource, name)(**kwargs) # and prepare the scheduler scheduler.enter(self) # add the task generating capabilities to the scheduler map(scheduler.has, self.generators) scheduler.stage_generators() return scheduler