def transact(self, dbname, data): if type(data) == list: data = '[%s\n]' % '\n'.join(data) r = requests.post(self.db_url(dbname)+'/', data={'tx-data':data}, headers={'Accept':'application/edn'}) assert r.status_code in (200, 201), (r.status_code, r.text) return loads(r.content)
def test_inst_with_tz(self): text = '#inst "1985-04-12T23:20:50.52-05:30"' parsed = loads(text) expected_tz = pytz.FixedOffset(-5 * 60 - 30) self.assertEqual( datetime.datetime(1985, 4, 12, 23, 20, 50, 520000, tzinfo=expected_tz), parsed)
def test_exact_floats(self): floats = [ (Decimal('4.2'), '4.2M'), (Decimal('-4.2'), '-4.2M'), (Decimal('4.2'), '+4.2M'), (Decimal('412.2'), '4.122e2M'), ] for expected, edn_str in floats: self.assertEqual(expected, loads(edn_str))
def query(self, dbname, query, extra_args=[], history=False): args = '[{:db/alias ' + self.storage + '/' + dbname if history: args += ' :history true' args += '} ' + ' '.join(str(a) for a in extra_args) + ']' r = requests.get(urljoin(self.location, 'api/query'), params={'args' : args, 'q':query}, headers={'Accept':'application/edn'}) assert r.status_code == 200, r.text return loads(r.content)
def entity(self, dbname, eid, stream=False, size=None): r = requests.get(self.db_url(dbname) + '/-/entity', params={'e':eid}, headers={'Accept':'application/edn'}) if gevent: pool = Pool(size) if size else None jobs = [requests.send(r, pool, stream=stream)] gevent.joinall(jobs) r = r.response assert r.status_code == 200 return loads(r.content)
def transact(self, dbname, data, stream=False, size=None): data = '[%s\n]' % '\n'.join(data) r = requests.post(self.db_url(dbname)+'/', data={'tx-data':data}, headers={'Accept':'application/edn'}) if gevent: pool = Pool(size) if size else None jobs = [requests.send(r, pool, stream=stream)] gevent.joinall(jobs) r = r.response assert r.status_code in (200, 201), (r.status_code, r.text) return loads(r.content)
def entity(self, dbname, eid, stream=False, size=None): r = requests.get(self.db_url(dbname) + '/-/entity', params={'e': eid}, headers={'Accept': 'application/edn'}) if gevent: pool = Pool(size) if size else None jobs = [requests.send(r, pool, stream=stream)] gevent.joinall(jobs) r = r.response assert r.status_code == 200 return loads(r.content)
def transact(self, dbname, data, stream=False, size=None): data = '[%s\n]' % '\n'.join(data) r = requests.post(self.db_url(dbname) + '/', data={'tx-data': data}, headers={'Accept': 'application/edn'}) if gevent: pool = Pool(size) if size else None jobs = [requests.send(r, pool, stream=stream)] gevent.joinall(jobs) r = r.response assert r.status_code in (200, 201), (r.status_code, r.text) return loads(r.content)
def entry_point(argv): input_data = readinput() try: input_parsed = edn.loads("(do %s)" % input_data) except rply.parser.ParsingError as error: pos = error.getsourcepos() print "Error reading code at line: %d column: %d" % (pos.lineno, pos.colno) return -1 env = Env(GROUND) print Cc(input_parsed, identity, env, None).run().to_str() return 0
def query(self, dbname, query, extra_args=[], history=False, stream=False, size=None): args = '[{:db/alias ' + self.storage + '/' + dbname if history: args += ' :history true' args += '} ' + ' '.join(str(a) for a in extra_args) + ']' r = requests.get(urljoin(self.location, 'api/query'), params={'args' : args, 'q':query}, headers={'Accept':'application/edn'}) if gevent: pool = Pool(size) if size else None jobs = [requests.send(r, pool, stream=stream)] gevent.joinall(jobs) r = r.response assert r.status_code == 200, r.text return loads(r.content)
def entry_point(argv): input_data = readinput() env = Env(pground.GROUND) try: input_parsed = edn.loads("(do %s)" % input_data) print Cc(input_parsed, identity, env, None).run().to_str() # catching two exceptions here makes pypy fail with a weird error except rply.parser.ParsingError as error: pos = error.getsourcepos() print "Error reading code at line: %d column: %d" % (pos.lineno, pos.colno) return -1 except rply.errors.LexingError as error: pos = error.getsourcepos() print "Error reading code at line: %d column: %d" % (pos.lineno, pos.colno) return -1 except PError as error: print error.to_str() return -1 return 0
def query(self, dbname, query, extra_args=[], history=False, stream=False, size=None): args = '[{:db/alias ' + self.storage + '/' + dbname if history: args += ' :history true' args += '} ' + ' '.join(str(a) for a in extra_args) + ']' r = requests.get(urljoin(self.location, 'api/query'), params={ 'args': args, 'q': query }, headers={'Accept': 'application/edn'}) if gevent: pool = Pool(size) if size else None jobs = [requests.send(r, pool, stream=stream)] gevent.joinall(jobs) r = r.response assert r.status_code == 200, r.text return loads(r.content)
def test_numbers(self): self.assertEqual(4.2, loads('4.2')) self.assertEqual((Symbol('amount'), -11.4), loads('[amount -11.4]'))
def test_bool(self): self.assertEqual(True, loads('true')) self.assertEqual(False, loads('false'))
def from_edn(self, edn_value): return edn.loads(edn_value, self.edn_types)
def test_custom_tag(self): text = '#foo [1 2]' parsed = loads(text, {Symbol('foo'): lambda x: list(reversed(x))}) self.assertEqual([2, 1], parsed)
def get_db_event_iterator(line_iterator): for line in get_line_iterator(line_iterator): assert len(line) == 1 yield loads(line[0][1])
def time_edn(f): start = datetime.now() loads(f) end = datetime.now() return (end - start).total_seconds()
def test_structure(self): self.assertEqual(set([1,2,3]), loads('#{1 2 3}')) self.assertEqual({1: 2, 3: 4}, loads('{1 2, 3 4}'))
def test_inst(self): text = '#inst "1985-04-12T23:20:50.52Z"' parsed = loads(text) self.assertEqual( datetime.datetime( 1985, 4, 12, 23, 20, 50, 520000, tzinfo=pytz.UTC), parsed)
def test_custom_tag_doesnt_mutate(self): foo = Symbol('foo') text = '#foo [1 2]' loads(text, {foo: lambda x: list(reversed(x))}) parsed = loads(text) self.assertEqual(TaggedValue(foo, Vector([1, 2])), parsed)
def test_inst_without_fractional(self): text = '#inst "1985-04-12T23:20:50Z"' parsed = loads(text) self.assertEqual( datetime.datetime(1985, 4, 12, 23, 20, 50, tzinfo=pytz.UTC), parsed)
def test_structure(self): self.assertEqual(set([1, 2, 3]), loads('#{1 2 3}')) self.assertEqual(frozendict({1: 2, 3: 4}), loads('{1 2, 3 4}')) self.assertEqual( frozendict({Keyword(Symbol('foo')): Symbol('bar')}), loads('{:foo bar}'))
def test_custom_tag(self): text = '#foo [1 2]' parsed = loads(text, {Symbol('foo'): reverse}) self.assertEqual([2, 1], parsed)
def test_uuid(self): uid = "f81d4fae-7dec-11d0-a765-00a0c91e6bf6" text = '#uuid "%s"' % (uid,) self.assertEqual(uuid.UUID(uid), loads(text))
def test_custom_default(self): text = '#foo [1 2]' parsed = loads(text, default=lambda a, b: b) self.assertEqual((1, 2), parsed)
def test_all_data(self): for k,v in self.data.items(): self.assertEqual(edn.loads(k), v)
def test_nil(self): self.assertEqual(None, loads('nil'))
def entity(self, dbname, eid): r = requests.get(self.db_url(dbname) + '/-/entity', params={'e':eid}, headers={'Accept':'application/edn'}) assert r.status_code == 200 return loads(r.content)