def __init__(self, G=None, persist=None): self.logger = log.get_logger('api') if G is not None: self.G, self.filename = G, None else: self.G, self.filename = self.load_graph(persist) self.Node = FileNodeAPI(self.G, self.logger, filename=self.filename) self.Edge = FileEdgeAPI(self.G, self.logger, filename=self.filename) # Save the graph before closing if persist: atexit.register(_save, self.G, self.filename)
def __init__(self, api, out=sys.stdout): """Initialize a Recator instance. No action is taken until :meth:`~.Reactor.setup` is invoked. Arguments: api: Backing API. out (:obj:file): File-like object; defaults to :attr:`sys.stdout`. Attributes: api: Backing API. file (:obj:file): File-like object; defaults to :attr:`sys.stdout`. logger (:class:`logging.Logger`): CLI logger. parser (:class:`argparse.ArgumentParser`): Argument parser. """ self.api = api self.logger = log.get_logger("cli") self.out = out
def __init__(self, start=1): self.logger = log.get_logger('api') self.logger.debug("Initializing serial to %d", start) self._index = start
def __init__(self, reactor): super().__init__() self.reactor = reactor self.logger = log.get_logger('valence')
import bs4 import mistune from bs4 import BeautifulSoup from atomic.utils.log import get_logger # key1=string key2=multi-word string... PARSE_KEY_VALUE_RE = re.compile( r'\b([^\s]+)\s*=\s*([^=]*)(?=\s+\w+\s*=|$)') # <src> <dest> <type> [key=value]... PARSE_LINK_ARGS_RE = re.compile( r'(?P<src>\d+)\s+(?P<dest>\d+)\s+(?:type=)?(?P<type>\w+)\s*(?P<kwargs>.*)') logger = get_logger('atomic') def parse_key_values(s): """Parse key-value pairs from 'key1=string key2=multi-word string ...'""" return {m.group(1): m.group(2) for m in PARSE_KEY_VALUE_RE.finditer(s)} def parse_non_kv(s): """Parse _up_ to the first key=value; 'cats k=v' returns 'cats'.""" m = PARSE_KEY_VALUE_RE.search(s) if m is None: return s return s[:m.start()].strip()
import json import os import networkx as nx from colorama import Fore, Style from networkx.readwrite import json_graph from atomic.darkmatter import api from atomic.errors import AtomicError from atomic.graph import graph, serial from atomic.utils import log DEFAULT_FILENAME = os.path.expanduser('~/atomic.json') _logger = log.get_logger('atomic') def _load(filename=DEFAULT_FILENAME): """Load the persisted :class:`networkx.MultiDiGraph`.""" try: with open(filename) as f: data = json.load(f) _logger.debug("Loaded %s", filename) return json_graph.node_link_graph(data, directed=True, multigraph=False) except FileNotFoundError: _logger.debug("No graph file found; instantiating") return nx.DiGraph()