beluki / mqlite Goto Github PK
View Code? Open in Web Editor NEWPattern match JSON like you query Freebase, using a simple MQL dialect.
Pattern match JSON like you query Freebase, using a simple MQL dialect.
Apologies if I sound a bit blocky and bot-like in my comment, it's like 12:33AM where I am. See MQLite.py:425, a conditional is not needed as you have already stated all of the possible conditions in the __init__
function. Also in line 438, not wanting to sound like a pendant it is generally not recommended to put spaces after equals sign in function arguments. For WrapConstraintAnd
you may implement it as the following which would be more intuitive:
class WrapConstraintAnd(object):
def __init__(self, *conds):
self.conds = conds
def match(self, data):
return all(k(data) for k in self.conds)
The long block of conditionals at line 529 may also be refactored into a dict:
class Compiler(object):
# code here
compilers = {bool: MatchEqual, dict: compile_dict, ...}
Also for caching classes like Pattern
I usually implement the caching like the following:
class Pattern(object):
def __init__(self, data):
self._compiler = Compiler()
self._data = data
self._compiled = None
def compile(self):
pattern = self._compiled = self._compiler.compile(self._data)
return pattern
def match(self, data):
return self._compiled.match(data) if self._compiled else self.compile().match(data)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.