Пример #1
0
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
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
 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
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
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
 def get(self):
     from tornado.httpclient import HTTPClient
     res = HTTPClient().fetch(unicode(self))
     return ujson.loads(res.body)
Пример #12
0
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
def test_namespace():
    from tuve.compat.string import unicode
    assert 'TokyoMetro.Ginza.Shibuya' == unicode(TM.Ginza.Shibuya)
Пример #14
0
def test_namespace():
    from tuve.compat.string import unicode
    assert 'TokyoMetro.Ginza.Shibuya' == unicode(TM.Ginza.Shibuya)
Пример #15
0
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
 def fork(self, params=False):
     return self.__class__(resource=unicode(self.resource),
                           spec=self.spec,
                           params=self.params if params else None)
Пример #17
0
 def __str__(self):
     return '&'.join(unicode(param) for param in self)
Пример #18
0
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
 def fork(self, params=False):
     return self.__class__(resource=unicode(self.resource), spec=self.spec,
                           params=self.params if params else None)
Пример #21
0
 def str(self):
     return unicode(self)
Пример #22
0
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
 def str(self):
     return unicode(self)
Пример #24
0
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)