# Path: OSMPythonTools/cachingStrategy/base.py
# class CachingStrategyBase:
#     def __init__(self):
#         pass
# 
#     def get(self, key):
#         raise(NotImplementedError('Subclass should implement get'))
# 
#     def set(self, key, data):
#         raise(NotImplementedError('Subclass should implement set'))
# 
#     def close(self):
#         pass


import os.path
import ujson
from OSMPythonTools.cachingStrategy.base import CachingStrategyBase


class JSON(CachingStrategyBase):
    def __init__(self, cacheDir='cache'):
        self._cacheDir = cacheDir

    def _filename(self, key):
        return os.path.join(self._cacheDir, key)


# Path: OSMPythonTools/cachingStrategy/base.py
# class CachingStrategyBase:
#     def __init__(self):
#         pass
# 
#     def get(self, key):
#         raise(NotImplementedError('Subclass should implement get'))
# 
#     def set(self, key, data):
#         raise(NotImplementedError('Subclass should implement set'))
# 
#     def close(self):
#         pass


# Path: OSMPythonTools/cachingStrategy/json.py
import os.path
import ujson
from OSMPythonTools.cachingStrategy.base import CachingStrategyBase



class JSON(CachingStrategyBase):
    def __init__(self, cacheDir='cache'):
        self._cacheDir = cacheDir

    def _filename(self, key):
        return os.path.join(self._cacheDir, key)


    def get(self, key):