from django.conf.urls.defaults import url, patterns, include from dcapi.common.emitters import StreamingCSVEmitter, StreamingJSONEmitter, ExcelEmitter from piston.emitters import Emitter Emitter.register('json', StreamingJSONEmitter, 'application/json; charset=utf-8') Emitter.register('csv', StreamingCSVEmitter, 'text/csv; charset=utf-8') Emitter.register('xls', ExcelEmitter, 'application/vnd.ms-excel; charset=utf-8') Emitter.unregister('django') Emitter.unregister('pickle') Emitter.unregister('xml') Emitter.unregister('yaml') urlpatterns = patterns( '', # each data set has its own area of the API and has its own # namespace. 'entities' is a core/common element to all APIs, and # aggregates has also been de-coupled from the contributions API. url(r'^entities', include('dcapi.aggregates.entities.urls')), url(r'^contracts', include('dcapi.contracts.urls')), #url(r'^contributions/bundled/', include('dcapi.contributions.bundling.urls')), url(r'^contributions', include('dcapi.contributions.urls')), url(r'^grants', include('dcapi.grants.urls')), url(r'^lobbying', include('dcapi.lobbying.urls')), url(r'^earmarks', include('dcapi.earmarks.urls')), url(r'^misconduct', include('dcapi.contractor_misconduct.urls')), url(r'^epa', include('dcapi.epa.urls')), url(r'^faca', include('dcapi.faca.urls')), url(r'^fara', include('dcapi.fara.urls')), url(r'^aggregates/', include('dcapi.aggregates.urls')),
from django.conf.urls.defaults import * from piston.resource import Resource from piston.emitters import Emitter from fiftystates.site.api.handlers import * from fiftystates.site.api.emitters import LoggingJSONEmitter, LoggingXMLEmitter from fiftystates.site.api.views import document if getattr(settings, 'USE_LOCKSMITH', False): from locksmith.auth.authentication import PistonKeyAuthentication authorizer = PistonKeyAuthentication() Emitter.register('json', LoggingJSONEmitter, 'application/json; charset=utf-8') # disable XML output Emitter.unregister('xml') else: authorizer = None metadata_handler = Resource(MetadataHandler, authentication=authorizer) bill_handler = Resource(BillHandler, authentication=authorizer) bill_search_handler = Resource(BillSearchHandler, authentication=authorizer) legislator_handler = Resource(LegislatorHandler, authentication=authorizer) legsearch_handler = Resource(LegislatorSearchHandler, authentication=authorizer) legislator_geo_handler = Resource(LegislatorGeoHandler, authentication=authorizer) committee_handler = Resource(CommitteeHandler, authentication=authorizer) committee_search_handler = Resource(CommitteeSearchHandler, authentication=authorizer) stats_handler = Resource(StatsHandler, authentication=authorizer)
'method': self.handler.__class__.__name__, 'query_string': request.META['QUERY_STRING'], 'timestamp': datetime.datetime.utcnow()}) except AttributeError: pass return resp else: authorizer = None Resource = piston.resource.Resource Emitter.register('json', BillyJSONEmitter, 'application/json; charset=utf-8') Emitter.register('ics', ICalendarEmitter, 'text/calendar') Emitter.unregister('yaml') Emitter.unregister('xml') Emitter.unregister('django') Emitter.unregister('pickle') all_metadata_handler = Resource(handlers.AllMetadataHandler, authentication=authorizer) metadata_handler = Resource(handlers.MetadataHandler, authentication=authorizer) bill_handler = Resource(handlers.BillHandler, authentication=authorizer) bill_search_handler = Resource(handlers.BillSearchHandler, authentication=authorizer) legislator_handler = Resource(handlers.LegislatorHandler, authentication=authorizer) legsearch_handler = Resource(handlers.LegislatorSearchHandler,
# self.cfvar = request.ocg.simulation_output.variable.code # else: # raise(NotImplementedError) # self.converter = self.get_converter() # logger.info("...ending {0}.render()...".format(self.__converter__.__name__)) # return(self.get_response()) def get_response(self): from util.ncconv.experimental.ocg_dataset.dataset import OcgDataset ds = OcgDataset(self.request.ocg.dataset_uri, **self.request.ocg.ocg_opts) return (self.converter.response(ds)) # def get_converter(self): # return(self.__converter__(self.cfvar+self.__file_ext__, # use_stat=self.request.ocg.query.use_stat, # use_geom=self.use_geom)) Emitter.register('shz', ShapefileEmitter, 'application/zip; charset=utf-8') Emitter.register('lshz', LinkedShapefileEmitter, 'application/zip; charset=utf-8') Emitter.unregister('json') Emitter.register('kml', KmlEmitter, 'application/vnd.google-earth.kml+xml') Emitter.register('kmz', KmzEmitter, 'application/vnd.google-earth.kmz') Emitter.register('json', GeoJsonEmitter, 'text/plain; charset=utf-8') Emitter.register('csv', CsvEmitter, 'text/csv; charset=utf-8') Emitter.register('kcsv', LinkedCsvEmitter, 'application/zip; charset=utf-8') Emitter.register('sqlite', SqliteEmitter, 'application/zip; charset=utf-8') Emitter.register('nc', NcEmitter, 'application/x-netcdf; charset=utf-8') Emitter.register('meta', MetacontentEmitter, 'text/plain; charset=utf-8')
from django.conf.urls.defaults import url, patterns, include from dcapi.common.emitters import StreamingCSVEmitter, StreamingJSONEmitter, ExcelEmitter from piston.emitters import Emitter Emitter.register("json", StreamingJSONEmitter, "application/json; charset=utf-8") Emitter.register("csv", StreamingCSVEmitter, "text/csv; charset=utf-8") Emitter.register("xls", ExcelEmitter, "application/vnd.ms-excel; charset=utf-8") Emitter.unregister("django") Emitter.unregister("pickle") Emitter.unregister("xml") Emitter.unregister("yaml") urlpatterns = patterns( "", # each data set has its own area of the API and has its own # namespace. 'entities' is a core/common element to all APIs, and # aggregates has also been de-coupled from the contributions API. url(r"^entities", include("dcapi.aggregates.entities.urls")), url(r"^contracts", include("dcapi.contracts.urls")), # url(r'^contributions/bundled/', include('dcapi.contributions.bundling.urls')), url(r"^contributions", include("dcapi.contributions.urls")), url(r"^grants", include("dcapi.grants.urls")), url(r"^lobbying", include("dcapi.lobbying.urls")), url(r"^earmarks", include("dcapi.earmarks.urls")), url(r"^misconduct", include("dcapi.contractor_misconduct.urls")), url(r"^epa", include("dcapi.epa.urls")), url(r"^faca", include("dcapi.faca.urls")), url(r"^fara", include("dcapi.fara.urls")), url(r"^aggregates/", include("dcapi.aggregates.urls")), url(r"^refine/", include("dcapi.reconcile.urls")), url(r"^", include("dcapi.rapportive.urls")),
seria = json.json.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, sort_keys=True, ensure_ascii=False) else: seria = simplejson.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, sort_keys=True, ensure_ascii=False) if sig: if should_cache: cache.set(sig, seria, cache_timeout) # Callback if cb: return '%s(%s)' % (cb, seria) return seria Emitter.unregister('json') Emitter.register('json', CachedJSONEmitter, 'application/json; charset=utf-8') Mimer.register(simplejson.loads, ('application/json',)) class CSVEmitter(Emitter): """ Emitter for Comma Separated Values. """ def render(self, request, *args, **kwargs): f = StringIO.StringIO() out = csv.writer(f,dialect='excel') c = self.construct() if not bool(request.REQUEST.get('headerless', False)): out.writerow(self.fields)
#-*- coding:utf-8 -*- from piston.emitters import Emitter, XMLEmitter, YAMLEmitter, JSONEmitter, PickleEmitter from django.utils.encoding import smart_unicode from doc4.models import Package, Repository #Creat custom emitter if required, and register it like this: #Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Emitter.unregister('django') Emitter.unregister('xml') class DOC4XMLEmitter(XMLEmitter): def _to_xml(self, xml, data, startelement='resource'): startelements = { 'packages' : 'package', 'repositories' : 'repository', 'files' : 'file', 'changelogs' : 'changelog', 'obsoletes' : 'obsolete', 'conflicts' : 'conflict', 'suggests' : 'suggestion', 'scripts' : 'script', 'requires' : 'required', 'provides' : 'provided', 'sub_categories' : 'sub_category', 'categories' : 'category', } startelement = startelements.get(startelement, startelement) if isinstance(data, (list, tuple)): for item in data:
allowed_methods = ('GET',) fields = ['id', 'first_name', 'last_name', 'tags', 'photo', ('affiliations', ('id', ('role', ('title', ('content_type', ('model',)))), ('content_object', ('id', ('authorities',('id',('content_object',('abbreviation','id',)))), 'title', 'first_name', 'last_name')), ('content_type', ('model',))), ) ] model = Staff def queryset(self,request): return self.model.objects.all().order_by('last_name','first_name') Emitter.unregister('django') Emitter.unregister('pickle')