152a88140a
* Support for kwargs and keyword-only args (Py3) * Optional function arguments * Smart algorithm to find matching function overload without side effects * Ability to organize functions into layers * Configurable list of operators (left/right associative binary, prefix/suffix unary with precedence) * No global variables. There can be more than one parser with different set of operators simultaneously * List literals ([a, b]) * Dictionary literals ({ a => b}) * Handling of escape characters in string literals * Verbatim strings (`...`) and double-quotes ("...") * =~ and !~ operators in default configuration (similar to Perl) * -> operator to pass context * Alternate operator names (for example '*equal' instead of '#operator_=') so that it will be possible to have different symbol for particular operator without breaking standard library that expects operator to have well known names * Set operations * Support for lists and dictionaries as a dictionary keys and set elements * New framework to decorate functions * Ability to distinguish between functions and methods * Switchable naming conventions * Unicode support * Execution options available to all invoked functions * Iterators limitation * Ability to limit memory consumption * Can work with custom context classes * It is possible to extend both parser and set of expression classes on user-side * It is possible to create user-defined types (also can be used for dependency injection) * Legacy yaql 0.2.x backward compatibility mode * Comprehensive standard library of functions * High unit test coverage Change-Id: Ie31b7c3cbadbff5b7728f55b3ba7bcb78a39d156
76 lines
2.4 KiB
Python
Executable File
76 lines
2.4 KiB
Python
Executable File
# -*- coding: utf-8 -*-
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, os.path.abspath('../..'))
|
|
# -- General configuration ----------------------------------------------------
|
|
|
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
|
extensions = [
|
|
'sphinx.ext.autodoc',
|
|
# 'sphinx.ext.intersphinx',
|
|
'oslosphinx'
|
|
]
|
|
|
|
# autodoc generation is a bit aggressive and a nuisance when doing heavy
|
|
# text edit cycles.
|
|
# execute "export SPHINX_DEBUG=1" in your terminal to disable
|
|
|
|
# The suffix of source filenames.
|
|
source_suffix = '.rst'
|
|
|
|
# The master toctree document.
|
|
master_doc = 'index'
|
|
|
|
# General information about the project.
|
|
project = u'yaql'
|
|
copyright = u'2013, OpenStack Foundation'
|
|
|
|
# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
add_function_parentheses = True
|
|
|
|
# If true, the current module name will be prepended to all description
|
|
# unit titles (such as .. function::).
|
|
add_module_names = True
|
|
|
|
# The name of the Pygments (syntax highlighting) style to use.
|
|
pygments_style = 'sphinx'
|
|
|
|
# -- Options for HTML output --------------------------------------------------
|
|
|
|
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
|
# Sphinx are currently 'default' and 'sphinxdoc'.
|
|
# html_theme_path = ["."]
|
|
# html_theme = '_theme'
|
|
# html_static_path = ['static']
|
|
|
|
# Output file base name for HTML help builder.
|
|
htmlhelp_basename = '%sdoc' % project
|
|
|
|
# Grouping the document tree into LaTeX files. List of tuples
|
|
# (source start file, target name, title, author, documentclass
|
|
# [howto/manual]).
|
|
latex_documents = [
|
|
('index',
|
|
'%s.tex' % project,
|
|
u'%s Documentation' % project,
|
|
u'OpenStack Foundation', 'manual'),
|
|
]
|
|
|
|
# Example configuration for intersphinx: refer to the Python standard library.
|
|
# intersphinx_mapping = {'http://docs.python.org/': None}
|