Example #1
0
 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)
Example #2
0
File: test_edn.py Project: jml/edn
 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)
Example #3
0
 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))
Example #4
0
 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)
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
 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)
Example #9
0
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
Example #10
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)
Example #11
0
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
Example #12
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)
Example #13
0
 def test_numbers(self):
     self.assertEqual(4.2, loads('4.2'))
     self.assertEqual((Symbol('amount'), -11.4), loads('[amount -11.4]'))
Example #14
0
 def test_bool(self):
     self.assertEqual(True, loads('true'))
     self.assertEqual(False, loads('false'))
Example #15
0
 def from_edn(self, edn_value):
     return edn.loads(edn_value, self.edn_types)
Example #16
0
File: test_edn.py Project: jml/edn
 def test_custom_tag(self):
     text = '#foo [1 2]'
     parsed = loads(text, {Symbol('foo'): lambda x: list(reversed(x))})
     self.assertEqual([2, 1], parsed)
Example #17
0
def get_db_event_iterator(line_iterator):
    for line in get_line_iterator(line_iterator):
        assert len(line) == 1
        yield loads(line[0][1])
Example #18
0
def time_edn(f):
    start = datetime.now()
    loads(f)
    end = datetime.now()
    return (end - start).total_seconds()
Example #19
0
File: test_edn.py Project: jml/edn
 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}'))
Example #20
0
File: test_edn.py Project: jml/edn
 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)
Example #21
0
File: test_edn.py Project: jml/edn
 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)
Example #22
0
File: test_edn.py Project: jml/edn
 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)
Example #23
0
 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}'))
Example #24
0
 def test_custom_tag(self):
     text = '#foo [1 2]'
     parsed = loads(text, {Symbol('foo'): reverse})
     self.assertEqual([2, 1], parsed)
Example #25
0
File: test_edn.py Project: jml/edn
 def test_uuid(self):
     uid = "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
     text = '#uuid "%s"' % (uid,)
     self.assertEqual(uuid.UUID(uid), loads(text))
Example #26
0
 def test_custom_default(self):
     text = '#foo [1 2]'
     parsed = loads(text, default=lambda a, b: b)
     self.assertEqual((1, 2), parsed)
Example #27
0
 def test_all_data(self):
     for k,v in self.data.items():
         self.assertEqual(edn.loads(k), v)
Example #28
0
 def test_nil(self):
     self.assertEqual(None, loads('nil'))
Example #29
0
 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)
Example #30
0
 def from_edn(self, edn_value):
     return edn.loads(edn_value, self.edn_types)