dataservices-api/server/lib/python/cartodb_services
Mario de Frutos 73aa26590b Make the data gather singleton support multiple instances
Due to we use pgbouncer, we could share the same instance of the metrics
gatherer singleton in multiples requests. Added support to have
multiple instances identified by transaction id
2016-11-04 13:39:11 +01:00
..
cartodb_services Make the data gather singleton support multiple instances 2016-11-04 13:39:11 +01:00
test Tests for ServicesRedisConfig (mapzen quota) #281 2016-10-21 15:40:22 +02:00
README.md Update README.md 2016-09-09 11:44:57 +02:00
requirements.txt Added logger with rollbar integration 2016-08-01 18:03:42 +02:00
setup.py New metrics logger system 2016-11-02 15:26:39 +01:00

CARTO dataservices API python module

This directory contains the python library used by the server side of CARTO LDS (Location Data Services).

It is used from pl/python functions contained in the cdb_dataservices_server extension. It goes hand in hand with the extension so please consider running the integration tests.

On the other hand, it is pretty independent from the client, as long as the signatures of the public pl/python functions match.

Dependencies

See the [[requirements.txt]] or better the Basically:

  • pip
  • redis and hiredis
  • dateutil
  • googlemaps
  • request

Installation

Install the requirements:

sudo pip install -r requirements.txt

Install the library:

sudo pip install .

NOTE: a system installation is required at present because the library is meant to be used from postgres pl/python, which runs an embedded python interpreter.

Running the unit tests

Just run nosetests

$ nosetests
.................................................
----------------------------------------------------------------------
Ran 49 tests in 0.131s

OK

Running the integration tests

See the ../../../../test/README.md. Basically, move to the /test directory at the top level of this repo and execute the run_tests.py script:

cd $(git rev-parse --show-toplevel)/test
python run_tests.py --host=$YOUR_HOST $YOUR_USERNAME $YOUR_API_KEY

TODO

  • Move dependencies expressed in requirements.txt to setup.py