예제 #1
0
파일: test.py 프로젝트: hyungjun/tuve
def test_places():
    url = 'https://api.tokyometroapp.jp/api/v2/places?rdf:type=ug:Poi&lon=139.766926&lat=35.681265&radius=1000&acl:consumerKey=%s' % KEY
    query = TokyoMetroAPI(KEY).query('places').add_param(
        'rdf:type', 'ug:Poi').add_param('lon', '139.766926').add_param(
            'lat', '35.681265').add_param('radius', '1000')
    query_by_where = TokyoMetroAPI(KEY).places.add_param(
        'rdf:type', 'ug:Poi').where('139.766926', '35.681265', '1000')
    query_by_where_with_num = TokyoMetroAPI(KEY).places.add_param(
        'rdf:type', 'ug:Poi').where(139.766926, 35.681265, 1000)
    assert url == unicode(query) == unicode(query_by_where) == unicode(
        query_by_where_with_num)
예제 #2
0
 def _pad_items(self, mapping=None, padding=0, max_len=48):
     kvs = {k: getattr(self, k) for k in self.__slots__
            } if hasattr(self, '__slots__') else mapping or vars(self)
     if not kvs:
         return []
     keys = [ellipsis(unicode(v)) for v in kvs.keys()]
     vals = [ellipsis(unicode(v)) for v in kvs.values()]
     key_width = max(map(len, keys)) + padding
     val_width = max(map(len, vals)) + padding
     base = '{:{to}{width}}'
     return sorted((
         format(base, k, to='>', width=key_width),
         format(base, v, to='<', width=val_width)
         ) for k, v in zip(keys, vals)
     )
예제 #3
0
def station_timetable(query, railway_station):
    """
    # 駅時刻表
    query = tm.datapoints.STATION_TIMETABLE(TM.Ginza.Shibuya)
    """
    return query.reset_params(
    ).add_param('rdf:type', 'odpt:StationTimetable'
    ).add_param('odpt:station', 'odpt.Station:' + unicode(railway_station)
    )
예제 #4
0
def train_information(query, railway=None):
    """
    # 列車運行情報
    query = tm.datapoints.TRAIN_INFORMATION() # query all railway information
    query = tm.datapoints.TRAIN_INFORMATION(TM.Ginza)
    """
    query = query.reset_params().add_param('rdf:type', 'odpt:TrainInformation')
    if railway:
        query.add_param('odpt:railway', 'odpt.Railway:' + unicode(railway))
    return query
예제 #5
0
 def introspect(self):
     try:
         _repr = repr(self)
     except Exception as e:
         _repr = repr(e)
     try:
         _str = unicode(self)
     except Exception as e:
         _str = repr(e)
     print('\n========= Plain Introspection =========')
     print('repr : %s' % _repr)
     print('str  : %s' % _str)
     if hasattr(self, '__slots__'):
         print('slots: %s' % self.__slots__)
     print('attrs:')
     print( '\n'.join('|'.join(line) for line in self._pad_items()))
     print('')
예제 #6
0
파일: __init__.py 프로젝트: hyungjun/tuve
def autorun(args=None):
    try:
        option.register_commands()
        opt, unknown = option.arg_parser.parse_known_args(args)
        if not opt.command: # python2/3 compatibility
            raise option.ArgumentParserError('too few arguments')
    except (option.ArgumentParserError, ImportError) as e:
        print(e)
        help = option.arg_parser.format_help()
        print('\n%s\n\033[33m%s\033[0m\n' % (help, unicode(e)))
    else:
        try:
            return opt.generic_main()
        except Exception as e:
            tb = traceback.format_exc()
            print('\n%s\n\n\033[31m%s\033[0m' % (
                '===============\nRuntime Error !\n===============', tb))
예제 #7
0
def autorun(args=None):
    try:
        option.register_commands()
        opt, unknown = option.arg_parser.parse_known_args(args)
        if not opt.command:  # python2/3 compatibility
            raise option.ArgumentParserError('too few arguments')
    except (option.ArgumentParserError, ImportError) as e:
        print(e)
        help = option.arg_parser.format_help()
        print('\n%s\n\033[33m%s\033[0m\n' % (help, unicode(e)))
    else:
        try:
            return opt.generic_main()
        except Exception as e:
            tb = traceback.format_exc()
            print('\n%s\n\n\033[31m%s\033[0m' %
                  ('===============\nRuntime Error !\n===============', tb))
예제 #8
0
파일: query.py 프로젝트: hyungjun/tuve
 def where(self, lon, lat, rad):
     return self.add_param('lon', unicode(lon)).add_param('lat', unicode(lat)).add_param('radius', unicode(rad))
예제 #9
0
파일: test.py 프로젝트: hyungjun/tuve
def test_idea():
    tm = TokyoMetroAPI(KEY)
    q = TokyoMetroQuery('datapoints')
    q.add_param('rdf:type', 'odpt:Train')
    querystring = 'datapoints?rdf:type=odpt:Train'
    tm._query = q
    assert 'https://api.tokyometroapp.jp/api/v2/' + querystring + '&acl:consumerKey=%s' % KEY == unicode(
        tm)
예제 #10
0
파일: test.py 프로젝트: hyungjun/tuve
def test_functionality():
    from tornado.httpclient import HTTPClient
    qs = 'https://api.tokyometroapp.jp/api/v2/places?rdf:type=ug:Poi&lon=139.705678&lat=35.678156&radius=500&acl:consumerKey=%s' % KEY
    query = TokyoMetroAPI(KEY).places.POI(139.705678, 35.678156, 500)
    assert qs == unicode(query)
예제 #11
0
파일: query.py 프로젝트: hyungjun/tuve
 def get(self):
     from tornado.httpclient import HTTPClient
     res = HTTPClient().fetch(unicode(self))
     return ujson.loads(res.body)
예제 #12
0
파일: test.py 프로젝트: hyungjun/tuve
def test_idea():
    tm = TokyoMetroAPI(KEY)
    q = TokyoMetroQuery('datapoints')
    q.add_param('rdf:type', 'odpt:Train')
    querystring = 'datapoints?rdf:type=odpt:Train'
    tm._query = q
    assert 'https://api.tokyometroapp.jp/api/v2/' + querystring + '&acl:consumerKey=%s' % KEY == unicode(tm)
예제 #13
0
파일: test.py 프로젝트: hyungjun/tuve
def test_namespace():
    from tuve.compat.string import unicode
    assert 'TokyoMetro.Ginza.Shibuya' == unicode(TM.Ginza.Shibuya)
예제 #14
0
파일: test.py 프로젝트: hyungjun/tuve
def test_namespace():
    from tuve.compat.string import unicode
    assert 'TokyoMetro.Ginza.Shibuya' == unicode(TM.Ginza.Shibuya)
예제 #15
0
파일: test.py 프로젝트: hyungjun/tuve
def test_api_endpoint():
    from tuve.core.spec.common.endpoint import EndPoint
    ep = EndPoint(host='api.tokyometroapp.jp', nmspc_iter=['api', 'v2'])
    assert unicode(ep) == 'https://api.tokyometroapp.jp/api/v2'
예제 #16
0
파일: query.py 프로젝트: hyungjun/tuve
 def fork(self, params=False):
     return self.__class__(resource=unicode(self.resource),
                           spec=self.spec,
                           params=self.params if params else None)
예제 #17
0
파일: parameter.py 프로젝트: hyungjun/tuve
 def __str__(self):
     return '&'.join(unicode(param) for param in self)
예제 #18
0
파일: test.py 프로젝트: hyungjun/tuve
def test_api_endpoint():
    from tuve.core.spec.common.endpoint import EndPoint
    ep = EndPoint(host='api.tokyometroapp.jp', nmspc_iter=['api', 'v2'])
    assert unicode(ep) == 'https://api.tokyometroapp.jp/api/v2'
예제 #19
0
 def __str__(self):
     return '&'.join(unicode(param) for param in self)
예제 #20
0
파일: query.py 프로젝트: hyungjun/tuve
 def fork(self, params=False):
     return self.__class__(resource=unicode(self.resource), spec=self.spec,
                           params=self.params if params else None)
예제 #21
0
파일: query.py 프로젝트: hyungjun/tuve
 def str(self):
     return unicode(self)
예제 #22
0
파일: test.py 프로젝트: hyungjun/tuve
def test_functionality():
    from tornado.httpclient import HTTPClient
    qs = 'https://api.tokyometroapp.jp/api/v2/places?rdf:type=ug:Poi&lon=139.705678&lat=35.678156&radius=500&acl:consumerKey=%s' % KEY
    query = TokyoMetroAPI(KEY).places.POI(139.705678, 35.678156, 500)
    assert qs == unicode(query)
예제 #23
0
파일: query.py 프로젝트: hyungjun/tuve
 def str(self):
     return unicode(self)
예제 #24
0
파일: test.py 프로젝트: hyungjun/tuve
def test_places():
    url = 'https://api.tokyometroapp.jp/api/v2/places?rdf:type=ug:Poi&lon=139.766926&lat=35.681265&radius=1000&acl:consumerKey=%s' % KEY
    query = TokyoMetroAPI(KEY).query('places').add_param('rdf:type', 'ug:Poi').add_param('lon', '139.766926').add_param('lat', '35.681265').add_param('radius', '1000')
    query_by_where = TokyoMetroAPI(KEY).places.add_param('rdf:type', 'ug:Poi').where('139.766926', '35.681265', '1000')
    query_by_where_with_num = TokyoMetroAPI(KEY).places.add_param('rdf:type', 'ug:Poi').where(139.766926, 35.681265, 1000)
    assert url == unicode(query) == unicode(query_by_where) == unicode(query_by_where_with_num)