Пример #1
0
def setup_variables():
    '''Initialise variables'''
    variables = DefaultAttrDict(str)
    # Load all environment variables
    variables.update(os.environ)
    # GRAMEXPATH is the Gramex root directory
    variables['GRAMEXPATH'] = _gramex_path
    # GRAMEXAPPS is the Gramex apps directory
    variables['GRAMEXAPPS'] = os.path.join(_gramex_path, 'apps')
    # GRAMEXHOST is the hostname
    variables['GRAMEXHOST'] = socket.gethostname()
    # GRAMEXDATA varies based on OS
    if 'GRAMEXDATA' not in variables:
        if sys.platform.startswith('linux') or sys.platform == 'cygwin':
            variables['GRAMEXDATA'] = os.path.expanduser(
                '~/.config/gramexdata')
        elif sys.platform == 'win32':
            variables['GRAMEXDATA'] = os.path.join(variables['LOCALAPPDATA'],
                                                   'Gramex Data')
        elif sys.platform == 'darwin':
            variables['GRAMEXDATA'] = os.path.expanduser(
                '~/Library/Application Support/Gramex Data')
        else:
            variables['GRAMEXDATA'] = os.path.abspath('.')
            app_log.warning('$GRAMEXDATA set to %s for OS %s',
                            variables['GRAMEXDATA'], sys.platform)

    return variables
 def test_defaultdict_counter(self):
     'DefaultAttrDict as a list generator'
     ad = DefaultAttrDict(int)
     self.assertEqual(ad['x'], 0)
     ad.x += 1
     ad.y += 2
     ad.z = ad.z + 3
     self.assertEqual(ad, {'x': 1, 'y': 2, 'z': 3})
 def test_defaultdict_counter(self):
     'DefaultAttrDict as a list generator'
     ad = DefaultAttrDict(int)
     self.assertEqual(ad['x'], 0)
     ad.x += 1
     ad.y += 2
     ad.z = ad.z + 3
     self.assertEqual(ad, {'x': 1, 'y': 2, 'z': 3})
    def test_defaultdict_with_set(self):
        'DefaultAttrDict as a set generator'
        ad = DefaultAttrDict(set)
        self.assertEqual(ad['x'], set())
        self.assertEqual(ad['y'], set())
        self.assertEqual(ad, {'x': set(), 'y': set()})
        self.assertFalse('z' in ad)

        ad = DefaultAttrDict(set)
        self.assertEqual(ad.x, set())
        self.assertEqual(ad.y, set())
        self.assertEqual(ad, {'x': set(), 'y': set()})
        self.assertFalse('z' in ad)
    def test_defaultdict_with_list(self):
        'DefaultAttrDict as a list generator'
        ad = DefaultAttrDict(list)
        self.assertEqual(ad['x'], [])
        self.assertEqual(ad['y'], [])
        self.assertEqual(ad, {'x': [], 'y': []})
        self.assertFalse('z' in ad)

        ad = DefaultAttrDict(list)
        self.assertEqual(ad.x, [])
        self.assertEqual(ad.y, [])
        self.assertEqual(ad, {'x': [], 'y': []})
        self.assertFalse('z' in ad)
Пример #6
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     with warnings.catch_warnings():
         warnings.simplefilter("ignore")
         self.web_api = Client(
             proxy=self.proxies.get("https") if self.proxies else None,
             auto_patch=True,
             drop_incompat_keys=False)
     self.end_cursors = DefaultAttrDict(lambda: None)
Пример #7
0
 def meta_headers(url, params):
     r = self.get(url, params=params)
     result = DefaultAttrDict(AttrDict)
     for header_name, value in r.headers.items():
         name = header_name.lower()
         if name.startswith('fh-'):
             parts = name.split('-')
             dataset_name, key = '-'.join(parts[1:-1]), parts[-1]
             result[dataset_name][key] = json.loads(value)
     return result
Пример #8
0
def markdown_index(folder):
    result = DefaultAttrDict(set)
    for root, file in readme_files(folder):
        dirpath = os.path.relpath(root, '.').replace(os.path.sep, '/')
        with io.open(os.path.join(root, file), encoding='utf-8') as handle:
            md = markdown.Markdown(extensions=[
                'markdown.extensions.toc',
                'markdown.extensions.meta',
                IndexerExtension(),
            ])
            md.convert(handle.read())
            for frag, text in md.index:
                result[dirpath, frag].add(text)
    return result
Пример #9
0
    def update_nodes(self):
        nodes = []
        flat = self._flatten(self.nodes)

        for item_key, item_values in flat.iteritems():
            for index, item_value in enumerate(item_values):
                if len(nodes) <= index:
                    nodes.append(DefaultAttrDict(dict))
                if '.' in item_key:
                    keys = item_key.split('.')
                    nodes[index][keys[0]][keys[1]] = item_value
                else:
                    nodes[index][item_key] = item_value

        self.inv.nodes = nodes
        self.dbase.dump_inventory(self.inv)
Пример #10
0
def markdown_index(folder):
    result = DefaultAttrDict(set)
    for root, file in readme_files(folder):
        basename = os.path.basename(root)
        if basename == '.':
            continue
        with io.open(os.path.join(root, file), encoding='utf-8') as handle:
            md = markdown.Markdown(extensions=[
                'markdown.extensions.toc',
                'markdown.extensions.meta',
                IndexerExtension(),
            ])
            md.convert(handle.read())
            for frag, text in md.index:
                result[basename, frag].add(text)
    return result
 def tree():
     return DefaultAttrDict(tree)
Пример #12
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self._callbacks = DefaultAttrDict(list)