From 56de370cec275e998bffd0fdd591cc7620dda392 Mon Sep 17 00:00:00 2001 From: Kiefer Katovich Date: Thu, 22 Feb 2018 22:01:37 -0500 Subject: [PATCH 1/7] docs and some new additions like degroup --- dfply/base.py | 97 +++++++++++++++++++++++++- dfply/summarize.py | 4 +- docs/Makefile | 20 ++++++ docs/conf.py | 166 ++++++++++++++++++++++++++++++++++++++++++++ docs/dfply.data.rst | 10 +++ docs/dfply.rst | 117 +++++++++++++++++++++++++++++++ docs/index.rst | 20 ++++++ docs/modules.rst | 7 ++ 8 files changed, 438 insertions(+), 3 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/dfply.data.rst create mode 100644 docs/dfply.rst create mode 100644 docs/index.rst create mode 100644 docs/modules.rst diff --git a/dfply/base.py b/dfply/base.py index a25adcb..7f07dd7 100644 --- a/dfply/base.py +++ b/dfply/base.py @@ -51,6 +51,44 @@ def _delayed_function(function, args, kwargs): def make_symbolic(f): + """Decorator to convert a function into a symbolic function. Decorating a + function with `make_symbolic` enables the use of symbolic arguments that + will need to be delayed later. + + Example: + Sometimes, like in the window and summary functions that operate on + series, it is necessary to defer the evaluation of a function. For + example, in the code below: + + >>> diamonds >> summarize(price_third=nth(X.price, 3)) + + The `nth()`` function would typically be evaluated before `summarize()` + and the symbolic argument `X.price` would not be evaluated at the right + time. + + The `@make_symbolic` decorator can be placed above functions to convert + them into symbolic functions that will wait to evaluate. Again, this is + used primarily for functions that are embedded inside the function call + within the piping syntax. + + The nth() code, for example, is below: + + ```python + @make_symbolic + def nth(series, n, order_by=None): + if order_by is not None: + series = order_series_by(series, order_by) + try: + return series.iloc[n] + except: + return np.nan + ``` + + Functions you write that you want to be able to embed as an argument can + use the @make_symbolic to wait until they have access to the DataFrame + to evaluate. + + """ def wrapper(*args, **kwargs): delay = _check_delayed_eval(args, kwargs) if delay: @@ -63,6 +101,12 @@ def wrapper(*args, **kwargs): class Intention(object): + """The `Intention` class defers evaluation. Python does not evaluate lazily + by design; this is emulated by chaining lambda functions. + + `Intention` is not intended to be used directly. As the name implies it is + the representation of an intended action to be done at a later time. + """ def __init__(self, function=lambda x: x, invert=False): self.function = function self.inverted = invert @@ -119,6 +163,32 @@ def magic_method(self, *args, **kwargs): class pipe(object): + """The pipe decorator allows functions to send a dataframe from one operation + to the next via the >> piping operator. + + For functions to work with the piping syntax they must be decorated with `@pipe.` + + Any function decorated with `@pipe` implicitly receives a single first + argument expected to be a pandas DataFrame. This is the DataFrame being + passed through the pipe. For example, mutate and select have function + specifications mutate(df, **kwargs) and select(df, *args, **kwargs), + but when used do not require the user to insert the DataFrame as an argument. + + ```python + diamonds >> mutate(new_var=X.price + X.depth) >> select(X.new_var) + ``` + + If you create a new function decorated by `@pipe`, the function definition + should contain an initial argument that represents the DataFrame being + passed through the piping operations. + + ```python + @pipe + def myfunc(df, *args, **kwargs): + # code + ``` + """ + __name__ = "pipe" def __init__(self, function): @@ -329,13 +399,38 @@ def __call__(self, *args, **kwargs): with warnings.catch_warnings(): warnings.simplefilter("ignore") applied._grouped_by = grouped_by - + return applied +class degroup(object): + __name__ = "degroup" + + def __init__(self, function): + self.function = function + self.__doc__ = function.__doc__ + + + def __call__(self, *args, **kwargs): + applied = self.function(*args, **kwargs) + setattr(applied, '_grouped_by', None) + return applied + + + def dfpipe(f): return pipe( group_delegation( symbolic_evaluation(f) ) ) + + +def dfpipe_degroup(f): + return pipe( + degroup( + group_delegation( + symbolic_evaluation(f) + ) + ) + ) diff --git a/dfply/summarize.py b/dfply/summarize.py index 6afaf2e..313f4f6 100644 --- a/dfply/summarize.py +++ b/dfply/summarize.py @@ -1,12 +1,12 @@ from .base import * -@dfpipe +@dfpipe_degroup def summarize(df, **kwargs): return pd.DataFrame({k: [v] for k, v in kwargs.items()}) -@dfpipe +@dfpipe_degroup def summarize_each(df, functions, *args): columns, values = [], [] for arg in args: diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..9c68eb1 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = dfply +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..b0ad19e --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# dfply documentation build configuration file, created by +# sphinx-quickstart on Thu Feb 22 21:25:10 2018. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# 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', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.mathjax', + 'sphinx.ext.viewcode', + 'sphinx.ext.napoleon'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'dfply' +copyright = '2018, Kiefer Katovich' +author = 'Kiefer Katovich' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.3.1' +# The full version, including alpha/beta/rc tags. +release = '0.3.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'dfplydoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'dfply.tex', 'dfply Documentation', + 'Kiefer Katovich', 'manual'), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'dfply', 'dfply Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'dfply', 'dfply Documentation', + author, 'dfply', 'One line description of project.', + 'Miscellaneous'), +] + + + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'https://docs.python.org/': None} diff --git a/docs/dfply.data.rst b/docs/dfply.data.rst new file mode 100644 index 0000000..20b3258 --- /dev/null +++ b/docs/dfply.data.rst @@ -0,0 +1,10 @@ +dfply\.data package +=================== + +Module contents +--------------- + +.. automodule:: dfply.data + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/dfply.rst b/docs/dfply.rst new file mode 100644 index 0000000..6ff776a --- /dev/null +++ b/docs/dfply.rst @@ -0,0 +1,117 @@ +dfply package +============= + +Subpackages +----------- + +.. toctree:: + + dfply.data + +Submodules +---------- + +dfply\.base module +------------------ + +.. automodule:: dfply.base + :members: + :undoc-members: + :show-inheritance: + +dfply\.group module +------------------- + +.. automodule:: dfply.group + :members: + :undoc-members: + :show-inheritance: + +dfply\.join module +------------------ + +.. automodule:: dfply.join + :members: + :undoc-members: + :show-inheritance: + +dfply\.reshape module +--------------------- + +.. automodule:: dfply.reshape + :members: + :undoc-members: + :show-inheritance: + +dfply\.select module +-------------------- + +.. automodule:: dfply.select + :members: + :undoc-members: + :show-inheritance: + +dfply\.set\_ops module +---------------------- + +.. automodule:: dfply.set_ops + :members: + :undoc-members: + :show-inheritance: + +dfply\.subset module +-------------------- + +.. automodule:: dfply.subset + :members: + :undoc-members: + :show-inheritance: + +dfply\.summarize module +----------------------- + +.. automodule:: dfply.summarize + :members: + :undoc-members: + :show-inheritance: + +dfply\.summary\_functions module +-------------------------------- + +.. automodule:: dfply.summary_functions + :members: + :undoc-members: + :show-inheritance: + +dfply\.transform module +----------------------- + +.. automodule:: dfply.transform + :members: + :undoc-members: + :show-inheritance: + +dfply\.vector module +-------------------- + +.. automodule:: dfply.vector + :members: + :undoc-members: + :show-inheritance: + +dfply\.window\_functions module +------------------------------- + +.. automodule:: dfply.window_functions + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: dfply + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..e7d4392 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,20 @@ +.. dfply documentation master file, created by + sphinx-quickstart on Thu Feb 22 21:25:10 2018. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to dfply's documentation! +================================= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/modules.rst b/docs/modules.rst new file mode 100644 index 0000000..df77548 --- /dev/null +++ b/docs/modules.rst @@ -0,0 +1,7 @@ +dfply +===== + +.. toctree:: + :maxdepth: 4 + + dfply From 27293531cdff4f86df55508a6e661bf67cb69781 Mon Sep 17 00:00:00 2001 From: Kiefer Katovich Date: Thu, 22 Feb 2018 22:08:11 -0500 Subject: [PATCH 2/7] trying sphinx autodoc again --- docs/source/dfply.data.rst | 10 ++++ docs/source/dfply.rst | 117 +++++++++++++++++++++++++++++++++++++ docs/source/modules.rst | 9 +++ docs/source/setup.rst | 7 +++ docs/source/test.rst | 102 ++++++++++++++++++++++++++++++++ 5 files changed, 245 insertions(+) create mode 100644 docs/source/dfply.data.rst create mode 100644 docs/source/dfply.rst create mode 100644 docs/source/modules.rst create mode 100644 docs/source/setup.rst create mode 100644 docs/source/test.rst diff --git a/docs/source/dfply.data.rst b/docs/source/dfply.data.rst new file mode 100644 index 0000000..20b3258 --- /dev/null +++ b/docs/source/dfply.data.rst @@ -0,0 +1,10 @@ +dfply\.data package +=================== + +Module contents +--------------- + +.. automodule:: dfply.data + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/dfply.rst b/docs/source/dfply.rst new file mode 100644 index 0000000..6ff776a --- /dev/null +++ b/docs/source/dfply.rst @@ -0,0 +1,117 @@ +dfply package +============= + +Subpackages +----------- + +.. toctree:: + + dfply.data + +Submodules +---------- + +dfply\.base module +------------------ + +.. automodule:: dfply.base + :members: + :undoc-members: + :show-inheritance: + +dfply\.group module +------------------- + +.. automodule:: dfply.group + :members: + :undoc-members: + :show-inheritance: + +dfply\.join module +------------------ + +.. automodule:: dfply.join + :members: + :undoc-members: + :show-inheritance: + +dfply\.reshape module +--------------------- + +.. automodule:: dfply.reshape + :members: + :undoc-members: + :show-inheritance: + +dfply\.select module +-------------------- + +.. automodule:: dfply.select + :members: + :undoc-members: + :show-inheritance: + +dfply\.set\_ops module +---------------------- + +.. automodule:: dfply.set_ops + :members: + :undoc-members: + :show-inheritance: + +dfply\.subset module +-------------------- + +.. automodule:: dfply.subset + :members: + :undoc-members: + :show-inheritance: + +dfply\.summarize module +----------------------- + +.. automodule:: dfply.summarize + :members: + :undoc-members: + :show-inheritance: + +dfply\.summary\_functions module +-------------------------------- + +.. automodule:: dfply.summary_functions + :members: + :undoc-members: + :show-inheritance: + +dfply\.transform module +----------------------- + +.. automodule:: dfply.transform + :members: + :undoc-members: + :show-inheritance: + +dfply\.vector module +-------------------- + +.. automodule:: dfply.vector + :members: + :undoc-members: + :show-inheritance: + +dfply\.window\_functions module +------------------------------- + +.. automodule:: dfply.window_functions + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: dfply + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/modules.rst b/docs/source/modules.rst new file mode 100644 index 0000000..5d75e6f --- /dev/null +++ b/docs/source/modules.rst @@ -0,0 +1,9 @@ +dfply +===== + +.. toctree:: + :maxdepth: 4 + + dfply + setup + test diff --git a/docs/source/setup.rst b/docs/source/setup.rst new file mode 100644 index 0000000..31789b1 --- /dev/null +++ b/docs/source/setup.rst @@ -0,0 +1,7 @@ +setup module +============ + +.. automodule:: setup + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/test.rst b/docs/source/test.rst new file mode 100644 index 0000000..80b5613 --- /dev/null +++ b/docs/source/test.rst @@ -0,0 +1,102 @@ +test package +============ + +Submodules +---------- + +test\.test\_base module +----------------------- + +.. automodule:: test.test_base + :members: + :undoc-members: + :show-inheritance: + +test\.test\_group module +------------------------ + +.. automodule:: test.test_group + :members: + :undoc-members: + :show-inheritance: + +test\.test\_join module +----------------------- + +.. automodule:: test.test_join + :members: + :undoc-members: + :show-inheritance: + +test\.test\_reshape module +-------------------------- + +.. automodule:: test.test_reshape + :members: + :undoc-members: + :show-inheritance: + +test\.test\_select module +------------------------- + +.. automodule:: test.test_select + :members: + :undoc-members: + :show-inheritance: + +test\.test\_subset module +------------------------- + +.. automodule:: test.test_subset + :members: + :undoc-members: + :show-inheritance: + +test\.test\_summarize module +---------------------------- + +.. automodule:: test.test_summarize + :members: + :undoc-members: + :show-inheritance: + +test\.test\_summary\_functions module +------------------------------------- + +.. automodule:: test.test_summary_functions + :members: + :undoc-members: + :show-inheritance: + +test\.test\_transform module +---------------------------- + +.. automodule:: test.test_transform + :members: + :undoc-members: + :show-inheritance: + +test\.test\_vector module +------------------------- + +.. automodule:: test.test_vector + :members: + :undoc-members: + :show-inheritance: + +test\.test\_window\_functions module +------------------------------------ + +.. automodule:: test.test_window_functions + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: test + :members: + :undoc-members: + :show-inheritance: From 0d69eadc1e85b72a7723e2f114b03c6a525aaa89 Mon Sep 17 00:00:00 2001 From: Kiefer Katovich Date: Thu, 22 Feb 2018 22:10:57 -0500 Subject: [PATCH 3/7] renaming --- docs/{source => sources}/dfply.data.rst | 0 docs/{source => sources}/dfply.rst | 0 docs/{source => sources}/modules.rst | 0 docs/{source => sources}/setup.rst | 0 docs/{source => sources}/test.rst | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename docs/{source => sources}/dfply.data.rst (100%) rename docs/{source => sources}/dfply.rst (100%) rename docs/{source => sources}/modules.rst (100%) rename docs/{source => sources}/setup.rst (100%) rename docs/{source => sources}/test.rst (100%) diff --git a/docs/source/dfply.data.rst b/docs/sources/dfply.data.rst similarity index 100% rename from docs/source/dfply.data.rst rename to docs/sources/dfply.data.rst diff --git a/docs/source/dfply.rst b/docs/sources/dfply.rst similarity index 100% rename from docs/source/dfply.rst rename to docs/sources/dfply.rst diff --git a/docs/source/modules.rst b/docs/sources/modules.rst similarity index 100% rename from docs/source/modules.rst rename to docs/sources/modules.rst diff --git a/docs/source/setup.rst b/docs/sources/setup.rst similarity index 100% rename from docs/source/setup.rst rename to docs/sources/setup.rst diff --git a/docs/source/test.rst b/docs/sources/test.rst similarity index 100% rename from docs/source/test.rst rename to docs/sources/test.rst From 4e03a1dbbc19701881f8e8fd017f7a60a12c9908 Mon Sep 17 00:00:00 2001 From: Kiefer Katovich Date: Fri, 23 Feb 2018 20:34:06 -0500 Subject: [PATCH 4/7] rename dir in docs --- docs/{sources => source}/dfply.data.rst | 0 docs/{sources => source}/dfply.rst | 0 docs/{sources => source}/modules.rst | 2 - docs/sources/setup.rst | 7 -- docs/sources/test.rst | 102 ------------------------ 5 files changed, 111 deletions(-) rename docs/{sources => source}/dfply.data.rst (100%) rename docs/{sources => source}/dfply.rst (100%) rename docs/{sources => source}/modules.rst (75%) delete mode 100644 docs/sources/setup.rst delete mode 100644 docs/sources/test.rst diff --git a/docs/sources/dfply.data.rst b/docs/source/dfply.data.rst similarity index 100% rename from docs/sources/dfply.data.rst rename to docs/source/dfply.data.rst diff --git a/docs/sources/dfply.rst b/docs/source/dfply.rst similarity index 100% rename from docs/sources/dfply.rst rename to docs/source/dfply.rst diff --git a/docs/sources/modules.rst b/docs/source/modules.rst similarity index 75% rename from docs/sources/modules.rst rename to docs/source/modules.rst index 5d75e6f..df77548 100644 --- a/docs/sources/modules.rst +++ b/docs/source/modules.rst @@ -5,5 +5,3 @@ dfply :maxdepth: 4 dfply - setup - test diff --git a/docs/sources/setup.rst b/docs/sources/setup.rst deleted file mode 100644 index 31789b1..0000000 --- a/docs/sources/setup.rst +++ /dev/null @@ -1,7 +0,0 @@ -setup module -============ - -.. automodule:: setup - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/sources/test.rst b/docs/sources/test.rst deleted file mode 100644 index 80b5613..0000000 --- a/docs/sources/test.rst +++ /dev/null @@ -1,102 +0,0 @@ -test package -============ - -Submodules ----------- - -test\.test\_base module ------------------------ - -.. automodule:: test.test_base - :members: - :undoc-members: - :show-inheritance: - -test\.test\_group module ------------------------- - -.. automodule:: test.test_group - :members: - :undoc-members: - :show-inheritance: - -test\.test\_join module ------------------------ - -.. automodule:: test.test_join - :members: - :undoc-members: - :show-inheritance: - -test\.test\_reshape module --------------------------- - -.. automodule:: test.test_reshape - :members: - :undoc-members: - :show-inheritance: - -test\.test\_select module -------------------------- - -.. automodule:: test.test_select - :members: - :undoc-members: - :show-inheritance: - -test\.test\_subset module -------------------------- - -.. automodule:: test.test_subset - :members: - :undoc-members: - :show-inheritance: - -test\.test\_summarize module ----------------------------- - -.. automodule:: test.test_summarize - :members: - :undoc-members: - :show-inheritance: - -test\.test\_summary\_functions module -------------------------------------- - -.. automodule:: test.test_summary_functions - :members: - :undoc-members: - :show-inheritance: - -test\.test\_transform module ----------------------------- - -.. automodule:: test.test_transform - :members: - :undoc-members: - :show-inheritance: - -test\.test\_vector module -------------------------- - -.. automodule:: test.test_vector - :members: - :undoc-members: - :show-inheritance: - -test\.test\_window\_functions module ------------------------------------- - -.. automodule:: test.test_window_functions - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: test - :members: - :undoc-members: - :show-inheritance: From 3ff50130516add4455e4cb323190ba9686dc0718 Mon Sep 17 00:00:00 2001 From: Kiefer Katovich Date: Fri, 23 Feb 2018 20:46:27 -0500 Subject: [PATCH 5/7] new docs --- docs/_build/doctrees/dfply.data.doctree | Bin 0 -> 2849 bytes docs/_build/doctrees/dfply.doctree | Bin 0 -> 77805 bytes docs/_build/doctrees/environment.pickle | Bin 0 -> 1571318 bytes docs/_build/doctrees/index.doctree | Bin 0 -> 4710 bytes docs/_build/doctrees/modules.doctree | Bin 0 -> 2513 bytes .../_build/doctrees/source/dfply.data.doctree | Bin 0 -> 2856 bytes docs/_build/doctrees/source/dfply.doctree | Bin 0 -> 87369 bytes docs/_build/doctrees/source/modules.doctree | Bin 0 -> 2534 bytes docs/_build/html/.buildinfo | 4 + docs/_build/html/_modules/dfply/base.html | 589 + docs/_build/html/_modules/dfply/join.html | 387 + docs/_build/html/_modules/dfply/reshape.html | 417 + docs/_build/html/_modules/dfply/select.html | 249 + docs/_build/html/_modules/dfply/set_ops.html | 242 + docs/_build/html/_modules/index.html | 91 + docs/_build/html/_sources/dfply.data.rst.txt | 10 + docs/_build/html/_sources/dfply.rst.txt | 117 + docs/_build/html/_sources/index.rst.txt | 20 + docs/_build/html/_sources/modules.rst.txt | 7 + .../html/_sources/source/dfply.data.rst.txt | 10 + .../_build/html/_sources/source/dfply.rst.txt | 117 + .../html/_sources/source/modules.rst.txt | 7 + docs/_build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes docs/_build/html/_static/alabaster.css | 693 ++ docs/_build/html/_static/basic.css | 632 + docs/_build/html/_static/comment-bright.png | Bin 0 -> 756 bytes docs/_build/html/_static/comment-close.png | Bin 0 -> 829 bytes docs/_build/html/_static/comment.png | Bin 0 -> 641 bytes docs/_build/html/_static/custom.css | 1 + docs/_build/html/_static/doctools.js | 287 + docs/_build/html/_static/down-pressed.png | Bin 0 -> 222 bytes docs/_build/html/_static/down.png | Bin 0 -> 202 bytes docs/_build/html/_static/file.png | Bin 0 -> 286 bytes docs/_build/html/_static/jquery-3.1.0.js | 10074 ++++++++++++++++ docs/_build/html/_static/jquery.js | 4 + docs/_build/html/_static/minus.png | Bin 0 -> 90 bytes docs/_build/html/_static/plus.png | Bin 0 -> 90 bytes docs/_build/html/_static/pygments.css | 69 + docs/_build/html/_static/searchtools.js | 758 ++ docs/_build/html/_static/underscore-1.3.1.js | 999 ++ docs/_build/html/_static/underscore.js | 31 + docs/_build/html/_static/up-pressed.png | Bin 0 -> 214 bytes docs/_build/html/_static/up.png | Bin 0 -> 203 bytes docs/_build/html/_static/websupport.js | 808 ++ docs/_build/html/dfply.data.html | 109 + docs/_build/html/dfply.html | 392 + docs/_build/html/genindex.html | 289 + docs/_build/html/index.html | 114 + docs/_build/html/modules.html | 126 + docs/_build/html/objects.inv | 6 + docs/_build/html/py-modindex.html | 171 + docs/_build/html/search.html | 105 + docs/_build/html/searchindex.js | 1 + docs/_build/html/source/dfply.data.html | 109 + docs/_build/html/source/dfply.html | 392 + docs/_build/html/source/modules.html | 126 + 56 files changed, 18563 insertions(+) create mode 100644 docs/_build/doctrees/dfply.data.doctree create mode 100644 docs/_build/doctrees/dfply.doctree create mode 100644 docs/_build/doctrees/environment.pickle create mode 100644 docs/_build/doctrees/index.doctree create mode 100644 docs/_build/doctrees/modules.doctree create mode 100644 docs/_build/doctrees/source/dfply.data.doctree create mode 100644 docs/_build/doctrees/source/dfply.doctree create mode 100644 docs/_build/doctrees/source/modules.doctree create mode 100644 docs/_build/html/.buildinfo create mode 100644 docs/_build/html/_modules/dfply/base.html create mode 100644 docs/_build/html/_modules/dfply/join.html create mode 100644 docs/_build/html/_modules/dfply/reshape.html create mode 100644 docs/_build/html/_modules/dfply/select.html create mode 100644 docs/_build/html/_modules/dfply/set_ops.html create mode 100644 docs/_build/html/_modules/index.html create mode 100644 docs/_build/html/_sources/dfply.data.rst.txt create mode 100644 docs/_build/html/_sources/dfply.rst.txt create mode 100644 docs/_build/html/_sources/index.rst.txt create mode 100644 docs/_build/html/_sources/modules.rst.txt create mode 100644 docs/_build/html/_sources/source/dfply.data.rst.txt create mode 100644 docs/_build/html/_sources/source/dfply.rst.txt create mode 100644 docs/_build/html/_sources/source/modules.rst.txt create mode 100644 docs/_build/html/_static/ajax-loader.gif create mode 100644 docs/_build/html/_static/alabaster.css create mode 100644 docs/_build/html/_static/basic.css create mode 100644 docs/_build/html/_static/comment-bright.png create mode 100644 docs/_build/html/_static/comment-close.png create mode 100644 docs/_build/html/_static/comment.png create mode 100644 docs/_build/html/_static/custom.css create mode 100644 docs/_build/html/_static/doctools.js create mode 100644 docs/_build/html/_static/down-pressed.png create mode 100644 docs/_build/html/_static/down.png create mode 100644 docs/_build/html/_static/file.png create mode 100644 docs/_build/html/_static/jquery-3.1.0.js create mode 100644 docs/_build/html/_static/jquery.js create mode 100644 docs/_build/html/_static/minus.png create mode 100644 docs/_build/html/_static/plus.png create mode 100644 docs/_build/html/_static/pygments.css create mode 100644 docs/_build/html/_static/searchtools.js create mode 100644 docs/_build/html/_static/underscore-1.3.1.js create mode 100644 docs/_build/html/_static/underscore.js create mode 100644 docs/_build/html/_static/up-pressed.png create mode 100644 docs/_build/html/_static/up.png create mode 100644 docs/_build/html/_static/websupport.js create mode 100644 docs/_build/html/dfply.data.html create mode 100644 docs/_build/html/dfply.html create mode 100644 docs/_build/html/genindex.html create mode 100644 docs/_build/html/index.html create mode 100644 docs/_build/html/modules.html create mode 100644 docs/_build/html/objects.inv create mode 100644 docs/_build/html/py-modindex.html create mode 100644 docs/_build/html/search.html create mode 100644 docs/_build/html/searchindex.js create mode 100644 docs/_build/html/source/dfply.data.html create mode 100644 docs/_build/html/source/dfply.html create mode 100644 docs/_build/html/source/modules.html diff --git a/docs/_build/doctrees/dfply.data.doctree b/docs/_build/doctrees/dfply.data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f05691413d75be01bcd9dd4b9f7124c8b245f6e4 GIT binary patch literal 2849 zcmai0OK%%D5Vqq;w)~Lnq|PM|7)4viNoBP_4nYn*_F~il^17r6!QJJGgm;%)K5Y3A zpaohW0eCC>lls56f$AjyR9I| zSz-L&{`e37-jCft(Mv6@ikWw7(1^Ln62%Jt*7G&Dsab4B!wq(lWdH^(3K&9+fmcr!(e*I<#-TWb<&ZyHzQz>ip#^Z+P$XCS1Ry@X2_-ZzJlq zsWD1K)*z-3!-hyS{B@ggMzw|z>s~?gdbO3ePjA?WZ`T+vFdMZ3 zH~K{;He*MzEDQqEHA;t{$~$EEk8p8{@cBK&%pU;MBmBR{{~P?jLp*$3#qoWJgCFyU z{LyL8MsB1_E{gdHO_GKOJy9fVzLdE-sb940HsPZZ6`o@tB#Idl-{h*!)JPrQ+gdiIK+_V1&IM8Vt*fb?X6v7a4QeHg`xWk=db|llI*{QD~uzim0cC)oA!*0*Wn1nJ5r?{>cxO0WNPo*@4G;HbcblvTR z7E{=q%u}gy56LhjwQ<@edI^i{4A%`WsVaaKG!&ybBm<*p%tBE9gByyXw1%)EmI<`H z8(5Q0o=mjB`rhgxVM<9wI4zQlDc~GjjnO7X(wbE(y~>Jr_phB?Gr|9K!`kS=f!?c^ zKTn?E^3{WDU%LGefCfq&_+$vkySA zy5;VJO*!cbt8<@dv>@g`x;vFOqQE2zk%P1WqXaD8!Qk(KWv zp!crMDT?Vgi`vz&c|Yb9<$!F|wS&xrCPScgZc8YHcSrR$XlnW+$RJ};q)2I7cQsSUZd}NzVz(smKUsm}1q8|KK)QaS>QFW5(cZ5gG=fHvR)< z-d5cKP;wv;rkwz#4KY+fxq2TQ;BFAY;C%#GlJFvUj~=xmtzQig!&=&H`hoa(a6rBp zg!OvN-|;v6HGg5W;dNWh$(q|jJL%Mhc>SRY@t)J@RJFmb XYpjTOI&qcx?Ibj^rsl(Nwb99cbqrd` literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/dfply.doctree b/docs/_build/doctrees/dfply.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8d3d54ebd8cc9d73b6cfb014ba4e18ab54124885 GIT binary patch literal 77805 zcmd^o378~Db>>`s&Mj$1QjZ3e5J)|vnI0htEJjEe0TN>+8hm}rE?#?K@!~a~jbM!pYs~&H z&Wy~+qpGV$GS;WbuFQ<%y%#V3_u@rl#KYSjxnR@gP4r*5tJ+-bc53xtuFdl5z?aFGrq0a+jh5imTHW@{(&AR0YzRAj<+hP zwA1tVbQdb&bfwd2*A}`R5KTmGtyKdM6izJGD?xyV_&wIBtcYKe)o#nÐnXw?t{W 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..3afd494d4b11ffffcc3bb0bddecdb74ba1587863 GIT binary patch literal 1571318 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Ƚ$rm7^RNI5u^3CR49l?+tFQ)Zu^t<+37fGM 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/modules.doctree b/docs/_build/doctrees/modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5ddf0e02112558387935eab53ea6cfd8df4d3a16 GIT binary patch literal 2513 zcmZ8jOK%%D5O!kgWm~f2Ha#RU+M);=x3JX!Jp{e<){6mM^0*ZQcS(tacgZauwhS~t zduR~@yp{b+{ayXIFH07%(DLJOhBNcc%>J?W?|+k>`WI$Q=ibS}UMS7DjbWUCk}DVg ziD!StkMUKQ7PObXEf|n=Zws}!zI(Db|tg8Kp5o(wH6@W z2a1->+nD+4ev#4q%J5~9@nPiXDs4qE6VJqfcqDeiuygPA{JrJI&aWh2ax-5^Cwz8p zc%|*UzW5yBvGY*-A*YzMzb?u^u^{ zJHt2Q)5wbFa8aBhL|@|h8qYU)UgCKcMy+wUj_4R!JG|%u_;;k?P^!G}j4vhbn3D7} z4daro8Lym(mwSjAt?HC5!rrRTS-cBFAsItT@4~b_-2-Fg%ZwY&;^j`*uM=vuLJse| z_*T3Yuf&=7?s5;oJV&Cot{#qB56^E5ttxIJ-Sj4%|GrB?qi5kW-mB=GqFos7fi@mV z!vq?3QySZwAQ9WQ*fiOvTAZb`kHReXCee(v6j+4A4yp6H2xH5glWK+Hc+ywP(rD#4 z(j0~#XyFm(u3W@y5hg3HxS>v)hy|k{t)pdy#X)0+K=&1v`|Z-30;?&aMG{%lF3b&5 zf^TCuS!(T+c6?*=@==(k%0qIaZ_p(Ju$#313UZ%2DTSCp17>c;;6yH@l%mAy$wuoR&Z)&d{7E zr{bqDldAHLaFuHYsTd~SEzjSaTZ#7<+na!9*Cwyjj zt_>q7HIM^lQh6@IFxP4c9}y18NQGV`*HH|^jC!ZZJro{GFlx$tS&^P~h-wW;5Y8xC zB!x#cg3v0Pa(@q1mV2hjx=egJ=4&)APBu^06v-XAmR2_WJR(e5nia{B_Lifr8pK&R zgfkZWr)|fWwqm4fFJV^kiohrI2$k3V9wsECFrA1Uz7oz=_NV#$=H}+2x^+UU3vE_& z#;@m)wDTCArV~kHIzb#S5oL#{j)9-Q{NYE0WoDN712YM^H}j%1Y1Puy$@|kQB1#i)UJij(_B!L1M=9^4l4dEj%! cqJ=aH`*Plb4|=#x$v#URrY*)a^?Y{mKaPmz-2eap literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/source/dfply.data.doctree b/docs/_build/doctrees/source/dfply.data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..253b9a3e94e32b661baf2b9f3877c8705a2151c9 GIT binary patch literal 2856 zcmai0OK%%D5Vqq;w)~Lnr0ykgU=(ejB$d?yJp?JxV=qP>Ag@cB5Zqm^NO*U-<-?W_ z0a~C15`ed|KdJw#ANM86Nl*a-mc!w2=9_P3`1{R&j&|0npBpAJwnk+7q>u^I-faaz z&I;rI_7DE>@BG*e6us2as+f7V2921DEK#iRZ#-Xfo0`Q&$fDEdJ>KV=Z~PdWJtIuU zmbTpOBrUV6Ur!Qh=y6Hob2?)_s6+ea3pNk;x?7dfs?J}&@`m?5ZNl|S3ZIPU`!=F( zn;N4;WDQ~pF>HuL!(X=X7wWJE_L}}yQ%}f-`pWd($->#uv zKsRayZuE;xY{rgbSs28pYp@PKmUjU0@8RhbDDb-oo!aGjoe6=Tom&Ynj{S!dZI|!d?|r-Za-_;ZNf(-Dp=brvQ&Vg0aK&mMrq7a6Vlk)0GfFJG@vtyYaFJJTM zblpa*3uF8#U)-qiuY;boK(pB*gXl(PTC5fo#jt)|0ClYONj%2 zKA-81tNdXAb=?hPt3sWShQnuWx0O_MJab!`83V}B3=X>PkgAG)iFf^1G_%NW+aCDv z%nfF&V2T>4JQfIyX+!f8i=Fx!0^8?UZZ}J-GOYHDj7g}ru#4+@fjd_y|5Qp-NW+#k zPuJaE=ro1R$vl-R_mB)ja!V4+JajA#lXq$f%UC5Lmnccn);w-(4m3>w!G~g1hGgu5 zWvE5B&1u#xd+vbE!6igvtZtQhu9vXL&T!rElBxn&K|?W`LozUm#w-No-@BnGN^1x! zVwph8yMZ<7`~= z9O%7#@$=*{E??cacGB&K05nkIz$ZgM-tA?ym|1jdz@1=y0|UU_RxFk(AqguP8buL@ z%0F{`R7{E(0f$IPiDoM1C~Y^S)=07txf=qE+DmL+l8$viwGs&QJ5|su7#vj+KwIdL z`-P~~%qEh|^T4NlHb>`WsQ<;uiXyQg7eb4gpCgh8O`|LX(s;SqRs(@g`xGyVjM1g@8A_r*$MhRHFgZbYrQFZ(JsxWj;xR~(_ z|7w)UK<{0hQxwy07PYHk^C;#N<$!F|wS&xrCPScgZc8YH=STHKXlnWc$RJ};q)2I7 zcQsSUZd}NzVz(smKUsm}1qafA2O}aS>QFW5(c#5gG=f zHvTFNBD;|Lfn0?mmEt8>gaxWHWbRkMOUQ0s3wt6)h%aU3T zPbp9$k7U;It5W^qny}LztXLehw^oO4t=LE7RVH-$!|S%1oi(?GcG9U0@d!i};#sHB cscM5=*H{tnbmA)W+ev6-P0felYNM0?0G0J!mjD0& literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/source/dfply.doctree b/docs/_build/doctrees/source/dfply.doctree new file mode 100644 index 0000000000000000000000000000000000000000..700b4ddaf914fe2f967a0a62a2fea3ffa8a84622 GIT binary patch literal 87369 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 + + + + + + + dfply.base — dfply 0.3.1 documentation + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for dfply.base

    +import pandas as pd
    +import numpy as np
    +import warnings
    +from functools import partial, wraps
    +
    +
    +def _recursive_apply(f, l):
    +    if isinstance(l, (list, tuple)):
    +        out = [_recursive_apply(f, l_) for l_ in l]
    +        if isinstance(l, tuple):
    +            out = tuple(out)
    +        return out
    +    else:
    +        return f(l)
    +
    +
    +
    [docs]def contextualize(arg, context): + if isinstance(arg, Intention): + arg = arg.evaluate(context) + return arg
    + + +
    [docs]def flatten(l): + for el in l: + if isinstance(el, (tuple, list)): + yield from flatten(el) + else: + yield el
    + + +def _check_delayed_eval(args, kwargs): + check = lambda x: isinstance(x, Intention) + delay = any([a for a in flatten(_recursive_apply(check, args))]) + delay = delay or any( + [v for v in flatten(_recursive_apply(check, list(kwargs.values())))]) + return delay + + +def _context_args(args): + return lambda x: _recursive_apply(partial(contextualize, context=x), args) + + +def _context_kwargs(kwargs): + values_ = lambda x: _recursive_apply(partial(contextualize, context=x), + list(kwargs.values())) + return lambda x: {k: v for k, v in zip(kwargs.keys(), values_(x))} + + +def _delayed_function(function, args, kwargs): + return lambda x: function(*_context_args(args)(x), + **_context_kwargs(kwargs)(x)) + + +
    [docs]def make_symbolic(f): + """Decorator to convert a function into a symbolic function. Decorating a + function with `make_symbolic` enables the use of symbolic arguments that + will need to be delayed later. + + Example: + Sometimes, like in the window and summary functions that operate on + series, it is necessary to defer the evaluation of a function. For + example, in the code below: + + >>> diamonds >> summarize(price_third=nth(X.price, 3)) + + The `nth()`` function would typically be evaluated before `summarize()` + and the symbolic argument `X.price` would not be evaluated at the right + time. + + The `@make_symbolic` decorator can be placed above functions to convert + them into symbolic functions that will wait to evaluate. Again, this is + used primarily for functions that are embedded inside the function call + within the piping syntax. + + The nth() code, for example, is below: + + ```python + @make_symbolic + def nth(series, n, order_by=None): + if order_by is not None: + series = order_series_by(series, order_by) + try: + return series.iloc[n] + except: + return np.nan + ``` + + Functions you write that you want to be able to embed as an argument can + use the @make_symbolic to wait until they have access to the DataFrame + to evaluate. + + """ + + def wrapper(*args, **kwargs): + delay = _check_delayed_eval(args, kwargs) + if delay: + delayed = _delayed_function(f, args, kwargs) + return Intention(delayed) + else: + return f(*args, **kwargs) + + return wrapper
    + + +
    [docs]class Intention(object): + """The `Intention` class defers evaluation. Python does not evaluate lazily + by design; this is emulated by chaining lambda functions. + + `Intention` is not intended to be used directly. As the name implies it is + the representation of an intended action to be done at a later time. + """ + + def __init__(self, function=lambda x: x, invert=False): + self.function = function + self.inverted = invert + +
    [docs] def evaluate(self, context): + return self.function(context)
    + + def __getattr__(self, attribute): + return Intention( + lambda x: getattr(self.function(x), attribute), + invert=self.inverted) + + def __invert__(self): + return Intention(self.function, invert=not self.inverted) + + def __call__(self, *args, **kwargs): + return Intention( + lambda x: self.function(x)(*_context_args(args)(x), **_context_kwargs(kwargs)(x)), + invert=self.inverted)
    + + +_magic_method_names = [ + '__abs__', + '__add__', + '__and__', + '__cmp__', + '__complex__', + '__contains__', + '__delattr__', + '__delete__', + '__delitem__', + '__delslice__', + '__div__', + '__divmod__', + '__enter__', + '__eq__', + '__exit__', + '__float__', + '__floordiv__', + '__ge__', + '__get__', + '__getitem__', + '__getslice__', + '__gt__', + '__hash__', + '__hex__', + '__iadd__', + '__iand__', + '__idiv__', + '__ifloordiv__', + '__ilshift__', + '__imod__', + '__imul__', + '__index__', + '__int__', + '__ior__', + '__ipow__', + '__irshift__', + '__isub__', + '__iter__', + '__itruediv__', + '__ixor__', + '__le__', + '__len__', + '__long__', + '__lshift__', + '__lt__', + '__mod__', + '__mul__', + '__ne__', + '__neg__', + '__nonzero__', + '__oct__', + '__or__', + '__pos__', + '__pow__', + '__radd__', + '__rand__', + '__rcmp__', + '__rdiv__', + '__rdivmod__', # '__repr__', + '__reversed__', + '__rfloordiv__', + '__rlshift__', + '__rmod__', + '__rmul__', + '__ror__', + '__rpow__', + '__rrshift__', + '__rshift__', + '__rsub__', + '__rtruediv__', + '__rxor__', + '__set__', + '__setitem__', + '__setslice__', + '__sub__', + '__truediv__', + '__unicode__', + '__xor__', + '__str__', +] + + +def _set_magic_method(name): + + def magic_method(self, *args, **kwargs): + return Intention( + lambda x: getattr(self.function(x), name)(*_context_args(args)(x), **_context_kwargs(kwargs)(x)), + invert=self.inverted) + + return magic_method + + +for name in _magic_method_names: + setattr(Intention, name, _set_magic_method(name)) + +# Initialize the global X symbol +X = Intention() + + +
    [docs]class pipe(object): + """The pipe decorator allows functions to send a dataframe from one operation + to the next via the >> piping operator. + + For functions to work with the piping syntax they must be decorated with `@pipe.` + + Any function decorated with `@pipe` implicitly receives a single first + argument expected to be a pandas DataFrame. This is the DataFrame being + passed through the pipe. For example, mutate and select have function + specifications mutate(df, **kwargs) and select(df, *args, **kwargs), + but when used do not require the user to insert the DataFrame as an argument. + + ```python + diamonds >> mutate(new_var=X.price + X.depth) >> select(X.new_var) + ``` + + If you create a new function decorated by `@pipe`, the function definition + should contain an initial argument that represents the DataFrame being + passed through the piping operations. + + ```python + @pipe + def myfunc(df, *args, **kwargs): + # code + ``` + """ + + __name__ = "pipe" + + def __init__(self, function): + self.function = function + self.__doc__ = function.__doc__ + + self.chained_pipes = [] + + def __rshift__(self, other): + assert isinstance(other, pipe) + self.chained_pipes.append(other) + return self + + def __rrshift__(self, other): + other_copy = other.copy() + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + other_copy._grouped_by = getattr(other, '_grouped_by', None) + + result = self.function(other_copy) + + for p in self.chained_pipes: + result = p.__rrshift__(result) + return result + + def __call__(self, *args, **kwargs): + return pipe(lambda x: self.function(x, *args, **kwargs))
    + + +
    [docs]class IntentionEvaluator(object): + """ + Parent class for symbolic argument decorators. + Default behavior is to recursively turn the arguments and keyword + arguments of a decorated function into `symbolic.Call` objects that + can be evaluated against a pandas DataFrame as it comes down a pipe. + """ + + __name__ = "IntentionEvaluator" + + def __init__(self, + function, + eval_symbols=True, + eval_as_label=[], + eval_as_selector=[]): + super(IntentionEvaluator, self).__init__() + self.function = function + self.__doc__ = function.__doc__ + + self.eval_symbols = eval_symbols + self.eval_as_label = eval_as_label + self.eval_as_selector = eval_as_selector + + def _evaluate(self, df, arg): + if isinstance(arg, Intention): + negate = arg.inverted + arg = arg.evaluate(df) + if negate: + arg = ~arg + return arg + + def _evaluate_label(self, df, arg): + arg = self._evaluate(df, arg) + + cols = list(df.columns) + if isinstance(arg, pd.Series): + arg = arg.name + if isinstance(arg, pd.Index): + arg = list(arg) + if isinstance(arg, int): + arg = cols[arg] + return arg + + def _evaluate_selector(self, df, arg): + negate = False + if isinstance(arg, Intention): + negate = arg.inverted + arg = arg.evaluate(df) + + cols = list(df.columns) + if isinstance(arg, pd.Series): + arg = [cols.index(arg.name)] + if isinstance(arg, pd.Index): + arg = [cols.index(i) for i in list(arg)] + if isinstance(arg, pd.DataFrame): + arg = [cols.index(i) for i in arg.columns] + if isinstance(arg, int): + arg = [arg] + if isinstance(arg, str): + arg = [cols.index(arg)] + if isinstance(arg, (list, tuple)): + arg = [cols.index(i) if isinstance(i, str) else i for i in arg] + + selection_vector = np.zeros(df.shape[1]) + col_idx = np.array(arg) + + if negate and len(col_idx) > 0: + selection_vector[col_idx] = -1 + elif len(col_idx) > 0: + selection_vector[col_idx] = 1 + return selection_vector + + def _evaluator_loop(self, df, arg, eval_func): + if isinstance(arg, (list, tuple)): + return [self._evaluator_loop(df, a_, eval_func) for a_ in arg] + else: + return eval_func(df, arg) + + def _symbolic_eval(self, df, arg): + return self._evaluator_loop(df, arg, self._evaluate) + + def _symbolic_to_label(self, df, arg): + return self._evaluator_loop(df, arg, self._evaluate_label) + + def _symbolic_to_selector(self, df, arg): + return self._evaluator_loop(df, arg, self._evaluate_selector) + + def _recursive_arg_eval(self, df, args): + eval_symbols = self._find_eval_args(self.eval_symbols, args) + eval_as_label = self._find_eval_args(self.eval_as_label, args) + eval_as_selector = self._find_eval_args(self.eval_as_selector, args) + + return [ + self._symbolic_to_label(df, a) + if i in eval_as_label else self._symbolic_to_selector(df, a) + if i in eval_as_selector else self._symbolic_eval(df, a) + if i in eval_symbols else a for i, a in enumerate(args) + ] + + def _recursive_kwarg_eval(self, df, kwargs): + eval_symbols = self._find_eval_kwargs(self.eval_symbols, kwargs) + eval_as_label = self._find_eval_kwargs(self.eval_as_label, kwargs) + eval_as_selector = self._find_eval_kwargs(self.eval_as_selector, kwargs) + + return { + k: (self._symbolic_to_label(df, v) + if k in eval_as_label else self._symbolic_to_selector(df, v) + if k in eval_as_selector else self._symbolic_eval(df, v) + if k in eval_symbols else v) + for k, v in kwargs.items() + } + + def _find_eval_args(self, request, args): + if (request == True) or ('*' in request): + return [i for i in range(len(args))] + elif request in [None, False]: + return [] + return request + + def _find_eval_kwargs(self, request, kwargs): + if (request == True) or ('**' in request): + return [k for k in kwargs.keys()] + elif request in [None, False]: + return [] + return request + + def __call__(self, *args, **kwargs): + df = args[0] + + args = self._recursive_arg_eval(df, args[1:]) + kwargs = self._recursive_kwarg_eval(df, kwargs) + + return self.function(df, *args, **kwargs)
    + + +
    [docs]def symbolic_evaluation(function=None, + eval_symbols=True, + eval_as_label=[], + eval_as_selector=[]): + if function: + return IntentionEvaluator(function) + else: + + @wraps(function) + def wrapper(function): + return IntentionEvaluator( + function, + eval_symbols=eval_symbols, + eval_as_label=eval_as_label, + eval_as_selector=eval_as_selector) + + return wrapper
    + + +
    [docs]class group_delegation(object): + __name__ = "group_delegation" + + def __init__(self, function): + self.function = function + self.__doc__ = function.__doc__ + + def _apply(self, df, *args, **kwargs): + grouped = df.groupby(df._grouped_by) + + df = grouped.apply(self.function, *args, **kwargs) + + for name in df.index.names[:-1]: + if name in df: + df.reset_index(level=0, drop=True, inplace=True) + else: + df.reset_index(level=0, inplace=True) + + if (df.index == 0).all(): + df.reset_index(drop=True, inplace=True) + + return df + + def __call__(self, *args, **kwargs): + grouped_by = getattr(args[0], '_grouped_by', None) + if (grouped_by is None) or not all( + [g in args[0].columns for g in grouped_by]): + return self.function(*args, **kwargs) + else: + applied = self._apply(args[0], *args[1:], **kwargs) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + applied._grouped_by = grouped_by + + return applied
    + + +
    [docs]class degroup(object): + __name__ = "degroup" + + def __init__(self, function): + self.function = function + self.__doc__ = function.__doc__ + + def __call__(self, *args, **kwargs): + applied = self.function(*args, **kwargs) + setattr(applied, '_grouped_by', None) + return applied
    + + +
    [docs]def dfpipe(f): + return pipe(group_delegation(symbolic_evaluation(f)))
    + + +
    [docs]def dfpipe_degroup(f): + return pipe(degroup(group_delegation(symbolic_evaluation(f))))
    +
    + +
    +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_modules/dfply/join.html b/docs/_build/html/_modules/dfply/join.html new file mode 100644 index 0000000..a79285c --- /dev/null +++ b/docs/_build/html/_modules/dfply/join.html @@ -0,0 +1,387 @@ + + + + + + + + dfply.join — dfply 0.3.1 documentation + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for dfply.join

    +from .base import *
    +
    +
    +# ------------------------------------------------------------------------------
    +# SQL-style joins
    +# ------------------------------------------------------------------------------
    +
    +
    [docs]def get_join_parameters(join_kwargs): + """ + Convenience function to determine the columns to join the right and + left DataFrames on, as well as any suffixes for the columns. + """ + + by = join_kwargs.get('by', None) + suffixes = join_kwargs.get('suffixes', ('_x', '_y')) + if by is None: + left_on, right_on = None, None + else: + if isinstance(by, str): + left_on, right_on = by, by + else: + left_on = [col if isinstance(col, str) else col[0] for col in by] + right_on = [col if isinstance(col, str) else col[1] for col in by] + return left_on, right_on, suffixes
    + + +@pipe +def inner_join(df, other, **kwargs): + """ + Joins on values present in both DataFrames. + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + suffixes (list): String suffixes to append to column names in left + and right DataFrames. + + Example: + a >> inner_join(b, by='x1') + + x1 x2 x3 + 0 A 1 True + 1 B 2 False + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + joined = df.merge(other, how='inner', left_on=left_on, + right_on=right_on, suffixes=suffixes) + return joined + + +@pipe +def full_join(df, other, **kwargs): + """ + Joins on values present in either DataFrame. (Alternate to `outer_join`) + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + suffixes (list): String suffixes to append to column names in left + and right DataFrames. + + Example: + a >> outer_join(b, by='x1') + + x1 x2 x3 + 0 A 1.0 True + 1 B 2.0 False + 2 C 3.0 NaN + 3 D NaN True + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + joined = df.merge(other, how='outer', left_on=left_on, + right_on=right_on, suffixes=suffixes) + return joined + + +@pipe +def outer_join(df, other, **kwargs): + """ + Joins on values present in either DataFrame. (Alternate to `full_join`) + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + suffixes (list): String suffixes to append to column names in left + and right DataFrames. + + Example: + a >> full_join(b, by='x1') + + x1 x2 x3 + 0 A 1.0 True + 1 B 2.0 False + 2 C 3.0 NaN + 3 D NaN True + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + joined = df.merge(other, how='outer', left_on=left_on, + right_on=right_on, suffixes=suffixes) + return joined + + +@pipe +def left_join(df, other, **kwargs): + """ + Joins on values present in in the left DataFrame. + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + suffixes (list): String suffixes to append to column names in left + and right DataFrames. + + Example: + a >> left_join(b, by='x1') + + x1 x2 x3 + 0 A 1 True + 1 B 2 False + 2 C 3 NaN + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + joined = df.merge(other, how='left', left_on=left_on, + right_on=right_on, suffixes=suffixes) + return joined + + +@pipe +def right_join(df, other, **kwargs): + """ + Joins on values present in in the right DataFrame. + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + suffixes (list): String suffixes to append to column names in left + and right DataFrames. + + Example: + a >> right_join(b, by='x1') + + x1 x2 x3 + 0 A 1.0 True + 1 B 2.0 False + 2 D NaN True + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + joined = df.merge(other, how='right', left_on=left_on, + right_on=right_on, suffixes=suffixes) + return joined + + +@pipe +def semi_join(df, other, **kwargs): + """ + Returns all of the rows in the left DataFrame that have a match + in the right DataFrame. + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + + Example: + a >> semi_join(b, by='x1') + + x1 x2 + 0 A 1 + 1 B 2 + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + if not right_on: + right_on = [col_name for col_name in df.columns.values.tolist() if col_name in other.columns.values.tolist()] + left_on = right_on + elif not isinstance(right_on, (list, tuple)): + right_on = [right_on] + other_reduced = other[right_on].drop_duplicates() + joined = df.merge(other_reduced, how='inner', left_on=left_on, + right_on=right_on, suffixes=('', '_y'), + indicator=True).query('_merge=="both"')[df.columns.values.tolist()] + return joined + + +@pipe +def anti_join(df, other, **kwargs): + """ + Returns all of the rows in the left DataFrame that do not have a + match in the right DataFrame. + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe) + other (pandas.DataFrame): Right DataFrame + + Kwargs: + by (str or list): Columns to join on. If a single string, will join + on that column. If a list of lists which contain strings or + integers, the right/left columns to join on. + + Example: + a >> anti_join(b, by='x1') + + x1 x2 + 2 C 3 + """ + + left_on, right_on, suffixes = get_join_parameters(kwargs) + if not right_on: + right_on = [col_name for col_name in df.columns.values.tolist() if col_name in other.columns.values.tolist()] + left_on = right_on + elif not isinstance(right_on, (list, tuple)): + right_on = [right_on] + other_reduced = other[right_on].drop_duplicates() + joined = df.merge(other_reduced, how='left', left_on=left_on, + right_on=right_on, suffixes=('', '_y'), + indicator=True).query('_merge=="left_only"')[df.columns.values.tolist()] + return joined + + +# ------------------------------------------------------------------------------ +# Binding +# ------------------------------------------------------------------------------ + +@pipe +def bind_rows(df, other, join='outer', ignore_index=False): + """ + Binds DataFrames "vertically", stacking them together. This is equivalent + to `pd.concat` with `axis=0`. + + Args: + df (pandas.DataFrame): Top DataFrame (passed in via pipe). + other (pandas.DataFrame): Bottom DataFrame. + + Kwargs: + join (str): One of `"outer"` or `"inner"`. Outer join will preserve + columns not present in both DataFrames, whereas inner joining will + drop them. + ignore_index (bool): Indicates whether to consider pandas indices as + part of the concatenation (defaults to `False`). + """ + + df = pd.concat([df, other], join=join, ignore_index=ignore_index, axis=0) + return df + + +@pipe +def bind_cols(df, other, join='outer', ignore_index=False): + """ + Binds DataFrames "horizontally". This is equivalent to `pd.concat` with + `axis=1`. + + Args: + df (pandas.DataFrame): Left DataFrame (passed in via pipe). + other (pandas.DataFrame): Right DataFrame. + + Kwargs: + join (str): One of `"outer"` or `"inner"`. Outer join will preserve + rows not present in both DataFrames, whereas inner joining will + drop them. + ignore_index (bool): Indicates whether to consider pandas indices as + part of the concatenation (defaults to `False`). + """ + + df = pd.concat([df, other], join=join, ignore_index=ignore_index, axis=1) + return df +
    + +
    +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_modules/dfply/reshape.html b/docs/_build/html/_modules/dfply/reshape.html new file mode 100644 index 0000000..3679b19 --- /dev/null +++ b/docs/_build/html/_modules/dfply/reshape.html @@ -0,0 +1,417 @@ + + + + + + + + dfply.reshape — dfply 0.3.1 documentation + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for dfply.reshape

    +from .base import *
    +import re
    +
    +
    +# ------------------------------------------------------------------------------
    +# Sorting
    +# ------------------------------------------------------------------------------
    +
    +@dfpipe
    +def arrange(df, *args, **kwargs):
    +    """Calls `pandas.DataFrame.sort_values` to sort a DataFrame according to
    +    criteria.
    +
    +    See:
    +    http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html
    +
    +    For a list of specific keyword arguments for sort_values (which will be
    +    the same in arrange).
    +
    +    Args:
    +        *args: Symbolic, string, integer or lists of those types indicating
    +            columns to sort the DataFrame by.
    +
    +    Kwargs:
    +        **kwargs: Any keyword arguments will be passed through to the pandas
    +            `DataFrame.sort_values` function.
    +    """
    +
    +    flat_args = [a for a in flatten(args)]
    +
    +    series = [df[arg] if isinstance(arg, str) else
    +              df.iloc[:, arg] if isinstance(arg, int) else
    +              pd.Series(arg) for arg in flat_args]
    +
    +    sorter = pd.concat(series, axis=1).reset_index(drop=True)
    +    sorter = sorter.sort_values(sorter.columns.tolist(), **kwargs)
    +    return df.iloc[sorter.index, :]
    +
    +
    +# ------------------------------------------------------------------------------
    +# Renaming
    +# ------------------------------------------------------------------------------
    +
    +@pipe
    +@symbolic_evaluation(eval_as_label=True)
    +def rename(df, **kwargs):
    +    """Renames columns, where keyword argument values are the current names
    +    of columns and keys are the new names.
    +
    +    Args:
    +        df (:obj:`pandas.DataFrame`): DataFrame passed in via `>>` pipe.
    +
    +    Kwargs:
    +        **kwargs: key:value pairs where keys are new names for columns and
    +            values are current names of columns.
    +    """
    +
    +    return df.rename(columns={v: k for k, v in kwargs.items()})
    +
    +
    +# ------------------------------------------------------------------------------
    +# Elongate
    +# ------------------------------------------------------------------------------
    +
    +@pipe
    +@symbolic_evaluation(eval_as_label=['*'])
    +def gather(df, key, values, *args, **kwargs):
    +    """
    +    Melts the specified columns in your DataFrame into two key:value columns.
    +
    +    Args:
    +        key (str): Name of identifier column.
    +        values (str): Name of column that will contain values for the key.
    +        *args (str, int, symbolic): Columns to "melt" into the new key and
    +            value columns. If no args are specified, all columns are melted
    +            into they key and value columns.
    +
    +    Kwargs:
    +        add_id (bool): Boolean value indicating whether to add a `"_ID"`
    +            column that will preserve information about the original rows
    +            (useful for being able to re-widen the data later).
    +
    +    Example:
    +        diamonds >> gather('variable', 'value', ['price', 'depth','x','y','z']) >> head(5)
    +
    +           carat      cut color clarity  table variable  value
    +        0   0.23    Ideal     E     SI2   55.0    price  326.0
    +        1   0.21  Premium     E     SI1   61.0    price  326.0
    +        2   0.23     Good     E     VS1   65.0    price  327.0
    +        3   0.29  Premium     I     VS2   58.0    price  334.0
    +        4   0.31     Good     J     SI2   58.0    price  335.0
    +    """
    +
    +    if len(args) == 0:
    +        args = df.columns.tolist()
    +    else:
    +        args = [a for a in flatten(args)]
    +
    +    if kwargs.get('add_id', False):
    +        df = df.assign(_ID=np.arange(df.shape[0]))
    +
    +    columns = df.columns.tolist()
    +    id_vars = [col for col in columns if col not in args]
    +    return pd.melt(df, id_vars, list(args), key, values)
    +
    +
    +# ------------------------------------------------------------------------------
    +# Widen
    +# ------------------------------------------------------------------------------
    +
    +
    [docs]def convert_type(df, columns): + """ + Helper function that attempts to convert columns into their appropriate + data type. + """ + # taken in part from the dplython package + out_df = df.copy() + for col in columns: + column_values = pd.Series(out_df[col].unique()) + column_values = column_values[~column_values.isnull()] + # empty + if len(column_values) == 0: + continue + # boolean + if set(column_values.values) < {'True', 'False'}: + out_df[col] = out_df[col].map({'True': True, 'False': False}) + continue + # numeric + if pd.to_numeric(column_values, errors='coerce').isnull().sum() == 0: + out_df[col] = pd.to_numeric(out_df[col], errors='ignore') + continue + # datetime + if pd.to_datetime(column_values, errors='coerce').isnull().sum() == 0: + out_df[col] = pd.to_datetime(out_df[col], errors='ignore', + infer_datetime_format=True) + continue + + return out_df
    + + +@pipe +@symbolic_evaluation(eval_as_label=['*']) +def spread(df, key, values, convert=False): + """ + Transforms a "long" DataFrame into a "wide" format using a key and value + column. + + If you have a mixed datatype column in your long-format DataFrame then the + default behavior is for the spread columns to be of type `object`, or + string. If you want to try to convert dtypes when spreading, you can set + the convert keyword argument in spread to True. + + Args: + key (str, int, or symbolic): Label for the key column. + values (str, int, or symbolic): Label for the values column. + + Kwargs: + convert (bool): Boolean indicating whether or not to try and convert + the spread columns to more appropriate data types. + + + Example: + widened = elongated >> spread(X.variable, X.value) + widened >> head(5) + + _ID carat clarity color cut depth price table x y z + 0 0 0.23 SI2 E Ideal 61.5 326 55 3.95 3.98 2.43 + 1 1 0.21 SI1 E Premium 59.8 326 61 3.89 3.84 2.31 + 2 10 0.3 SI1 J Good 64 339 55 4.25 4.28 2.73 + 3 100 0.75 SI1 D Very Good 63.2 2760 56 5.8 5.75 3.65 + 4 1000 0.75 SI1 D Ideal 62.3 2898 55 5.83 5.8 3.62 + """ + + # Taken mostly from dplython package + columns = df.columns.tolist() + id_cols = [col for col in columns if not col in [key, values]] + + temp_index = ['' for i in range(len(df))] + for id_col in id_cols: + temp_index += df[id_col].map(str) + + out_df = df.assign(temp_index=temp_index) + out_df = out_df.set_index('temp_index') + spread_data = out_df[[key, values]] + + if not all(spread_data.groupby([spread_data.index, key]).agg( + 'count').reset_index()[values] < 2): + raise ValueError('Duplicate identifiers') + + spread_data = spread_data.pivot(columns=key, values=values) + + if convert and (out_df[values].dtype.kind in 'OSaU'): + columns_to_convert = [col for col in spread_data if col not in columns] + spread_data = convert_type(spread_data, columns_to_convert) + + out_df = out_df[id_cols].drop_duplicates() + out_df = out_df.merge(spread_data, left_index=True, right_index=True).reset_index(drop=True) + + out_df = (out_df >> arrange(id_cols)).reset_index(drop=True) + + return out_df + + +# ------------------------------------------------------------------------------ +# Separate columns +# ------------------------------------------------------------------------------ + +@pipe +@symbolic_evaluation(eval_as_label=['*']) +def separate(df, column, into, sep="[\W_]+", remove=True, convert=False, + extra='drop', fill='right'): + """ + Splits columns into multiple columns. + + Args: + df (pandas.DataFrame): DataFrame passed in through the pipe. + column (str, symbolic): Label of column to split. + into (list): List of string names for new columns. + + Kwargs: + sep (str or list): If a string, the regex string used to split the + column. If a list, a list of integer positions to split strings + on. + remove (bool): Boolean indicating whether to remove the original column. + convert (bool): Boolean indicating whether the new columns should be + converted to the appropriate type. + extra (str): either `'drop'`, where split pieces beyond the specified + new columns are dropped, or `'merge'`, where the final split piece + contains the remainder of the original column. + fill (str): either `'right'`, where `np.nan` values are filled in the + right-most columns for missing pieces, or `'left'` where `np.nan` + values are filled in the left-most columns. + """ + + assert isinstance(into, (tuple, list)) + + if isinstance(sep, (tuple, list)): + inds = [0] + list(sep) + if len(inds) > len(into): + if extra == 'drop': + inds = inds[:len(into) + 1] + elif extra == 'merge': + inds = inds[:len(into)] + [None] + else: + inds = inds + [None] + + splits = df[column].map(lambda x: [str(x)[slice(inds[i], inds[i + 1])] + if i < len(inds) - 1 else np.nan + for i in range(len(into))]) + + else: + maxsplit = len(into) - 1 if extra == 'merge' else 0 + splits = df[column].map(lambda x: re.split(sep, x, maxsplit)) + + right_filler = lambda x: x + [np.nan for i in range(len(into) - len(x))] + left_filler = lambda x: [np.nan for i in range(len(into) - len(x))] + x + + if fill == 'right': + splits = [right_filler(x) for x in splits] + elif fill == 'left': + splits = [left_filler(x) for x in splits] + + for i, split_col in enumerate(into): + df[split_col] = [x[i] if not x[i] == '' else np.nan for x in splits] + + if convert: + df = convert_type(df, into) + + if remove: + df.drop(column, axis=1, inplace=True) + + return df + + +# ------------------------------------------------------------------------------ +# Unite columns +# ------------------------------------------------------------------------------ + +@pipe +@symbolic_evaluation(eval_as_label=['*']) +def unite(df, colname, *args, **kwargs): + """ + Does the inverse of `separate`, joining columns together by a specified + separator. + + Any columns that are not strings will be converted to strings. + + Args: + df (pandas.DataFrame): DataFrame passed in through the pipe. + colname (str): the name of the new joined column. + *args: list of columns to be joined, which can be strings, symbolic, or + integer positions. + + Kwargs: + sep (str): the string separator to join the columns with. + remove (bool): Boolean indicating whether or not to remove the + original columns. + na_action (str): can be one of `'maintain'` (the default), + '`ignore'`, or `'as_string'`. The default will make the new column + row a `NaN` value if any of the original column cells at that + row contained `NaN`. '`ignore'` will treat any `NaN` value as an + empty string during joining. `'as_string'` will convert any `NaN` + value to the string `'nan'` prior to joining. + """ + + to_unite = list([a for a in flatten(args)]) + sep = kwargs.get('sep', '_') + remove = kwargs.get('remove', True) + # possible na_action values + # ignore: empty string + # maintain: keep as np.nan (default) + # as_string: becomes string 'nan' + na_action = kwargs.get('na_action', 'maintain') + + print(to_unite, sep, remove, na_action) + + if na_action == 'maintain': + df[colname] = df[to_unite].apply(lambda x: np.nan if any(x.isnull()) + else sep.join(x.map(str)), axis=1) + elif na_action == 'ignore': + df[colname] = df[to_unite].apply(lambda x: sep.join(x[~x.isnull()].map(str)), + axis=1) + elif na_action == 'as_string': + df[colname] = df[to_unite].astype(str).apply(lambda x: sep.join(x), axis=1) + + if remove: + df.drop(to_unite, axis=1, inplace=True) + + return df +
    + +
    +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_modules/dfply/select.html b/docs/_build/html/_modules/dfply/select.html new file mode 100644 index 0000000..be4be51 --- /dev/null +++ b/docs/_build/html/_modules/dfply/select.html @@ -0,0 +1,249 @@ + + + + + + + + dfply.select — dfply 0.3.1 documentation + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for dfply.select

    +from .base import *
    +
    +
    +# ------------------------------------------------------------------------------
    +# Select and drop operators
    +# ------------------------------------------------------------------------------
    +
    +
    [docs]def selection_context(arg, context): + if isinstance(arg, Intention): + arg = arg.evaluate(context) + if isinstance(arg, pd.Index): + arg = list(arg) + if isinstance(arg, pd.Series): + arg = arg.name + return arg
    + + +
    [docs]def selection_filter(f): + def wrapper(*args, **kwargs): + return Intention(lambda x: f(list(x.columns), + *(selection_context(a, x) for a in args), + **{k: selection_context(v, x) for k, v in kwargs.items()})) + + return wrapper
    + + +
    [docs]def resolve_selection(df, *args, drop=False): + if len(args) > 0: + args = [a for a in flatten(args)] + ordering = [] + column_indices = np.zeros(df.shape[1]) + for selector in args: + visible = np.where(selector != 0)[0] + if not drop: + column_indices[visible] = selector[visible] + else: + column_indices[visible] = selector[visible] * -1 + for selection in np.where(selector == 1)[0]: + if not df.columns[selection] in ordering: + ordering.append(df.columns[selection]) + else: + ordering = list(df.columns) + column_indices = np.ones(df.shape[1]) + return ordering, column_indices
    + + +@pipe +@group_delegation +@symbolic_evaluation(eval_as_selector=True) +def select(df, *args): + ordering, column_indices = resolve_selection(df, *args) + if (column_indices == 0).all(): + return df[[]] + selection = np.where((column_indices == np.max(column_indices)) & + (column_indices >= 0))[0] + df = df.iloc[:, selection] + if all([col in ordering for col in df.columns]): + ordering = [c for c in ordering if c in df.columns] + return df[ordering] + else: + return df + + +@pipe +@group_delegation +@symbolic_evaluation(eval_as_selector=True) +def drop(df, *args): + _, column_indices = resolve_selection(df, *args, drop=True) + if (column_indices == 0).all(): + return df[[]] + selection = np.where((column_indices == np.max(column_indices)) & + (column_indices >= 0))[0] + return df.iloc[:, selection] + + +@pipe +def select_if(df, fun): + """Selects columns where fun(ction) is true + Args: + fun: a function that will be applied to columns + """ + + def _filter_f(col): + try: + return fun(df[col]) + except: + return False + + cols = list(filter(_filter_f, df.columns)) + return df[cols] + + +@pipe +def drop_if(df, fun): + """Drops columns where fun(ction) is true + Args: + fun: a function that will be applied to columns + """ + + def _filter_f(col): + try: + return fun(df[col]) + except: + return False + + cols = list(filter(_filter_f, df.columns)) + return df.drop(cols, axis=1) + + +@selection_filter +
    [docs]def starts_with(columns, prefix): + return [c for c in columns if c.startswith(prefix)]
    + + +@selection_filter +
    [docs]def ends_with(columns, suffix): + return [c for c in columns if c.endswith(suffix)]
    + + +@selection_filter +
    [docs]def contains(columns, substr): + return [c for c in columns if substr in c]
    + + +@selection_filter +
    [docs]def everything(columns): + return columns
    + + +@selection_filter +
    [docs]def num_range(columns, prefix, range): + colnames = [prefix + str(i) for i in range] + return [c for c in columns if c in colnames]
    + + +@selection_filter +
    [docs]def one_of(columns, specified): + return [c for c in columns if c in specified]
    + + +@selection_filter +
    [docs]def columns_between(columns, start_col, end_col, inclusive=True): + if isinstance(start_col, str): + start_col = columns.index(start_col) + if isinstance(end_col, str): + end_col = columns.index(end_col) + return columns[start_col:end_col + int(inclusive)]
    + + +@selection_filter +
    [docs]def columns_from(columns, start_col): + if isinstance(start_col, str): + start_col = columns.index(start_col) + return columns[start_col:]
    + + +@selection_filter +
    [docs]def columns_to(columns, end_col, inclusive=False): + if isinstance(end_col, str): + end_col = columns.index(end_col) + return columns[:end_col + int(inclusive)]
    +
    + +
    +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_modules/dfply/set_ops.html b/docs/_build/html/_modules/dfply/set_ops.html new file mode 100644 index 0000000..0f7221c --- /dev/null +++ b/docs/_build/html/_modules/dfply/set_ops.html @@ -0,0 +1,242 @@ + + + + + + + + dfply.set_ops — dfply 0.3.1 documentation + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for dfply.set_ops

    +from .base import *
    +import warnings
    +import pandas as pd
    +
    +
    +
    [docs]def validate_set_ops(df, other): + """ + Helper function to ensure that DataFrames are valid for set operations. + Columns must be the same name in the same order, and indices must be of the + same dimension with the same names. + """ + + if df.columns.values.tolist() != other.columns.values.tolist(): + not_in_df = [col for col in other.columns if col not in df.columns] + not_in_other = [col for col in df.columns if col not in other.columns] + error_string = 'Error: not compatible.' + if len(not_in_df): + error_string += ' Cols in y but not x: ' + str(not_in_df) + '.' + if len(not_in_other): + error_string += ' Cols in x but not y: ' + str(not_in_other) + '.' + raise ValueError(error_string) + if len(df.index.names) != len(other.index.names): + raise ValueError('Index dimension mismatch') + if df.index.names != other.index.names: + raise ValueError('Index mismatch') + else: + return
    + + +# ------------------------------------------------------------------------------ +# `union` +# ------------------------------------------------------------------------------ + +@pipe +def union(df, other, index=False, keep='first'): + """ + Returns rows that appear in either DataFrame. + + Args: + df (pandas.DataFrame): data passed in through the pipe. + other (pandas.DataFrame): other DataFrame to use for set operation with + the first. + + Kwargs: + index (bool): Boolean indicating whether to consider the pandas index + as part of the set operation (default `False`). + keep (str): Indicates which duplicate should be kept. Options are `'first'` + and `'last'`. + """ + validate_set_ops(df, other) + stacked = df.append(other) + if index: + stacked_reset_indexes = stacked.reset_index() + index_cols = [col for col in stacked_reset_indexes.columns if col not in df.columns] + index_name = df.index.names + return_df = stacked_reset_indexes.drop_duplicates(keep=keep).set_index(index_cols) + return_df.index.names = index_name + return return_df + else: + return stacked.drop_duplicates(keep=keep) + + +# ------------------------------------------------------------------------------ +# `intersect` +# ------------------------------------------------------------------------------ + + +@pipe +def intersect(df, other, index=False, keep='first'): + """ + Returns rows that appear in both DataFrames. + + Args: + df (pandas.DataFrame): data passed in through the pipe. + other (pandas.DataFrame): other DataFrame to use for set operation with + the first. + + Kwargs: + index (bool): Boolean indicating whether to consider the pandas index + as part of the set operation (default `False`). + keep (str): Indicates which duplicate should be kept. Options are `'first'` + and `'last'`. + """ + + validate_set_ops(df, other) + if index: + df_reset_index = df.reset_index() + other_reset_index = other.reset_index() + index_cols = [col for col in df_reset_index.columns if col not in df.columns] + df_index_names = df.index.names + return_df = (pd.merge(df_reset_index, other_reset_index, + how='inner', + left_on=df_reset_index.columns.values.tolist(), + right_on=df_reset_index.columns.values.tolist()) + .set_index(index_cols)) + return_df.index.names = df_index_names + return_df = return_df.drop_duplicates(keep=keep) + return return_df + else: + return_df = pd.merge(df, other, + how='inner', + left_on=df.columns.values.tolist(), + right_on=df.columns.values.tolist()) + return_df = return_df.drop_duplicates(keep=keep) + return return_df + + +# ------------------------------------------------------------------------------ +# `set_diff` +# ------------------------------------------------------------------------------ + + +@pipe +def set_diff(df, other, index=False, keep='first'): + """ + Returns rows that appear in the first DataFrame but not the second. + + Args: + df (pandas.DataFrame): data passed in through the pipe. + other (pandas.DataFrame): other DataFrame to use for set operation with + the first. + + Kwargs: + index (bool): Boolean indicating whether to consider the pandas index + as part of the set operation (default `False`). + keep (str): Indicates which duplicate should be kept. Options are `'first'` + and `'last'`. + """ + + validate_set_ops(df, other) + if index: + df_reset_index = df.reset_index() + other_reset_index = other.reset_index() + index_cols = [col for col in df_reset_index.columns if col not in df.columns] + df_index_names = df.index.names + return_df = (pd.merge(df_reset_index, other_reset_index, + how='left', + left_on=df_reset_index.columns.values.tolist(), + right_on=other_reset_index.columns.values.tolist(), + indicator=True) + .set_index(index_cols)) + return_df = return_df[return_df._merge == 'left_only'] + return_df.index.names = df_index_names + return_df = return_df.drop_duplicates(keep=keep)[df.columns] + return return_df + else: + return_df = pd.merge(df, other, + how='left', + left_on=df.columns.values.tolist(), + right_on=df.columns.values.tolist(), + indicator=True) + return_df = return_df[return_df._merge == 'left_only'] + return_df = return_df.drop_duplicates(keep=keep)[df.columns] + return return_df +
    + +
    +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_modules/index.html b/docs/_build/html/_modules/index.html new file mode 100644 index 0000000..4c3f68b --- /dev/null +++ b/docs/_build/html/_modules/index.html @@ -0,0 +1,91 @@ + + + + + + + + Overview: module code — dfply 0.3.1 documentation + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    All modules for which code is available

    + + +
    +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_sources/dfply.data.rst.txt b/docs/_build/html/_sources/dfply.data.rst.txt new file mode 100644 index 0000000..20b3258 --- /dev/null +++ b/docs/_build/html/_sources/dfply.data.rst.txt @@ -0,0 +1,10 @@ +dfply\.data package +=================== + +Module contents +--------------- + +.. automodule:: dfply.data + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/_sources/dfply.rst.txt b/docs/_build/html/_sources/dfply.rst.txt new file mode 100644 index 0000000..6ff776a --- /dev/null +++ b/docs/_build/html/_sources/dfply.rst.txt @@ -0,0 +1,117 @@ +dfply package +============= + +Subpackages +----------- + +.. toctree:: + + dfply.data + +Submodules +---------- + +dfply\.base module +------------------ + +.. automodule:: dfply.base + :members: + :undoc-members: + :show-inheritance: + +dfply\.group module +------------------- + +.. automodule:: dfply.group + :members: + :undoc-members: + :show-inheritance: + +dfply\.join module +------------------ + +.. automodule:: dfply.join + :members: + :undoc-members: + :show-inheritance: + +dfply\.reshape module +--------------------- + +.. automodule:: dfply.reshape + :members: + :undoc-members: + :show-inheritance: + +dfply\.select module +-------------------- + +.. automodule:: dfply.select + :members: + :undoc-members: + :show-inheritance: + +dfply\.set\_ops module +---------------------- + +.. automodule:: dfply.set_ops + :members: + :undoc-members: + :show-inheritance: + +dfply\.subset module +-------------------- + +.. automodule:: dfply.subset + :members: + :undoc-members: + :show-inheritance: + +dfply\.summarize module +----------------------- + +.. automodule:: dfply.summarize + :members: + :undoc-members: + :show-inheritance: + +dfply\.summary\_functions module +-------------------------------- + +.. automodule:: dfply.summary_functions + :members: + :undoc-members: + :show-inheritance: + +dfply\.transform module +----------------------- + +.. automodule:: dfply.transform + :members: + :undoc-members: + :show-inheritance: + +dfply\.vector module +-------------------- + +.. automodule:: dfply.vector + :members: + :undoc-members: + :show-inheritance: + +dfply\.window\_functions module +------------------------------- + +.. automodule:: dfply.window_functions + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: dfply + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt new file mode 100644 index 0000000..e7d4392 --- /dev/null +++ b/docs/_build/html/_sources/index.rst.txt @@ -0,0 +1,20 @@ +.. dfply documentation master file, created by + sphinx-quickstart on Thu Feb 22 21:25:10 2018. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to dfply's documentation! +================================= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/_build/html/_sources/modules.rst.txt b/docs/_build/html/_sources/modules.rst.txt new file mode 100644 index 0000000..df77548 --- /dev/null +++ b/docs/_build/html/_sources/modules.rst.txt @@ -0,0 +1,7 @@ +dfply +===== + +.. toctree:: + :maxdepth: 4 + + dfply diff --git a/docs/_build/html/_sources/source/dfply.data.rst.txt b/docs/_build/html/_sources/source/dfply.data.rst.txt new file mode 100644 index 0000000..20b3258 --- /dev/null +++ b/docs/_build/html/_sources/source/dfply.data.rst.txt @@ -0,0 +1,10 @@ +dfply\.data package +=================== + +Module contents +--------------- + +.. automodule:: dfply.data + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/_sources/source/dfply.rst.txt b/docs/_build/html/_sources/source/dfply.rst.txt new file mode 100644 index 0000000..6ff776a --- /dev/null +++ b/docs/_build/html/_sources/source/dfply.rst.txt @@ -0,0 +1,117 @@ +dfply package +============= + +Subpackages +----------- + +.. toctree:: + + dfply.data + +Submodules +---------- + +dfply\.base module +------------------ + +.. automodule:: dfply.base + :members: + :undoc-members: + :show-inheritance: + +dfply\.group module +------------------- + +.. automodule:: dfply.group + :members: + :undoc-members: + :show-inheritance: + +dfply\.join module +------------------ + +.. automodule:: dfply.join + :members: + :undoc-members: + :show-inheritance: + +dfply\.reshape module +--------------------- + +.. automodule:: dfply.reshape + :members: + :undoc-members: + :show-inheritance: + +dfply\.select module +-------------------- + +.. automodule:: dfply.select + :members: + :undoc-members: + :show-inheritance: + +dfply\.set\_ops module +---------------------- + +.. automodule:: dfply.set_ops + :members: + :undoc-members: + :show-inheritance: + +dfply\.subset module +-------------------- + +.. automodule:: dfply.subset + :members: + :undoc-members: + :show-inheritance: + +dfply\.summarize module +----------------------- + +.. automodule:: dfply.summarize + :members: + :undoc-members: + :show-inheritance: + +dfply\.summary\_functions module +-------------------------------- + +.. automodule:: dfply.summary_functions + :members: + :undoc-members: + :show-inheritance: + +dfply\.transform module +----------------------- + +.. automodule:: dfply.transform + :members: + :undoc-members: + :show-inheritance: + +dfply\.vector module +-------------------- + +.. automodule:: dfply.vector + :members: + :undoc-members: + :show-inheritance: + +dfply\.window\_functions module +------------------------------- + +.. automodule:: dfply.window_functions + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: dfply + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/_sources/source/modules.rst.txt b/docs/_build/html/_sources/source/modules.rst.txt new file mode 100644 index 0000000..df77548 --- /dev/null +++ b/docs/_build/html/_sources/source/modules.rst.txt @@ -0,0 +1,7 @@ +dfply +===== + +.. toctree:: + :maxdepth: 4 + + dfply diff --git a/docs/_build/html/_static/ajax-loader.gif b/docs/_build/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/alabaster.css b/docs/_build/html/_static/alabaster.css new file mode 100644 index 0000000..be65b13 --- /dev/null +++ b/docs/_build/html/_static/alabaster.css @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; + font-size: 17px; + background-color: #fff; + color: #000; + margin: 0; + padding: 0; +} + + +div.document { + width: 940px; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 220px; +} + +div.sphinxsidebar { + width: 220px; + font-size: 14px; + line-height: 1.5; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.body { + background-color: #fff; + color: #3E4349; + padding: 0 30px 0 30px; +} + +div.body > .section { + text-align: left; +} + +div.footer { + width: 940px; + margin: 20px auto 30px auto; + font-size: 14px; + color: #888; + text-align: right; +} + +div.footer a { + color: #888; +} + +p.caption { + font-family: inherit; + font-size: inherit; +} + + +div.relations { + display: none; +} + + +div.sphinxsidebar a { + color: #444; + text-decoration: none; + border-bottom: 1px dotted #999; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid #999; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0; + margin: -10px 0 0 0px; + text-align: center; +} + +div.sphinxsidebarwrapper h1.logo { + margin-top: -10px; + text-align: center; + margin-bottom: 5px; + text-align: left; +} + +div.sphinxsidebarwrapper h1.logo-name { + margin-top: 0px; +} + +div.sphinxsidebarwrapper p.blurb { + margin-top: 0; + font-style: normal; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: 'Garamond', 'Georgia', serif; + color: #444; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: #444; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: #555; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: #000; +} + +div.sphinxsidebar ul li.toctree-l1 > a { + font-size: 120%; +} + +div.sphinxsidebar ul li.toctree-l2 > a { + font-size: 110%; +} + +div.sphinxsidebar input { + border: 1px solid #CCC; + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; + font-size: 1em; +} + +div.sphinxsidebar hr { + border: none; + height: 1px; + color: #AAA; + background: #AAA; + + text-align: left; + margin-left: 0; + width: 50%; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #004B6B; + text-decoration: underline; +} + +a:hover { + color: #6D4100; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #DDD; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: #444; + background: #EAEAEA; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + margin: 20px 0px; + padding: 10px 30px; + background-color: #EEE; + border: 1px solid #CCC; +} + +div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fafafa; +} + +div.admonition p.admonition-title { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +div.highlight { + background-color: #fff; +} + +dt:target, .highlight { + background: #FAF3E8; +} + +div.warning { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.danger { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.error { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.caution { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.attention { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.important { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.note { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.tip { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.hint { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.seealso { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.topic { + background-color: #EEE; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt, code { + font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.9em; +} + +.hll { + background-color: #FFC; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +img.screenshot { +} + +tt.descname, tt.descclassname, code.descname, code.descclassname { + font-size: 0.95em; +} + +tt.descname, code.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils { + border: 1px solid #888; + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils td, table.docutils th { + border: 1px solid #888; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid #EEE; + background: #FDFDFD; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.field-list p { + margin-bottom: 0.8em; +} + +/* Cloned from + * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 + */ +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +table.footnote td.label { + width: .1px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + /* Matches the 30px from the narrow-screen "li > ul" selector below */ + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: #EEE; + padding: 7px 30px; + margin: 15px 0px; + line-height: 1.3em; +} + +div.viewcode-block:target { + background: #ffd; +} + +dl pre, blockquote pre, li pre { + margin-left: 0; + padding-left: 30px; +} + +tt, code { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ +} + +tt.xref, code.xref, a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fff; +} + +a.reference { + text-decoration: none; + border-bottom: 1px dotted #004B6B; +} + +/* Don't put an underline on images */ +a.image-reference, a.image-reference:hover { + border-bottom: none; +} + +a.reference:hover { + border-bottom: 1px solid #6D4100; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted #004B6B; +} + +a.footnote-reference:hover { + border-bottom: 1px solid #6D4100; +} + +a:hover tt, a:hover code { + background: #EEE; +} + + +@media screen and (max-width: 870px) { + + div.sphinxsidebar { + display: none; + } + + div.document { + width: 100%; + + } + + div.documentwrapper { + margin-left: 0; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + } + + div.bodywrapper { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + } + + ul { + margin-left: 0; + } + + li > ul { + /* Matches the 30px from the "ul, ol" selector above */ + margin-left: 30px; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .bodywrapper { + margin: 0; + } + + .footer { + width: auto; + } + + .github { + display: none; + } + + + +} + + + +@media screen and (max-width: 875px) { + + body { + margin: 0; + padding: 20px 30px; + } + + div.documentwrapper { + float: none; + background: #fff; + } + + div.sphinxsidebar { + display: block; + float: none; + width: 102.5%; + margin: 50px -30px -20px -30px; + padding: 10px 20px; + background: #333; + color: #FFF; + } + + div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, + div.sphinxsidebar h3 a { + color: #fff; + } + + div.sphinxsidebar a { + color: #AAA; + } + + div.sphinxsidebar p.logo { + display: none; + } + + div.document { + width: 100%; + margin: 0; + } + + div.footer { + display: none; + } + + div.bodywrapper { + margin: 0; + } + + div.body { + min-height: 0; + padding: 0; + } + + .rtd_doc_footer { + display: none; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .footer { + width: auto; + } + + .github { + display: none; + } +} + + +/* misc. */ + +.revsys-inline { + display: none!important; +} + +/* Make nested-list/multi-paragraph items look better in Releases changelog + * pages. Without this, docutils' magical list fuckery causes inconsistent + * formatting between different release sub-lists. + */ +div#changelog > div.section > ul > li > p:only-child { + margin-bottom: 0; +} + +/* Hide fugly table cell borders in ..bibliography:: directive output */ +table.docutils.citation, table.docutils.citation td, table.docutils.citation th { + border: none; + /* Below needed in some edge cases; if not applied, bottom shadows appear */ + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} \ No newline at end of file diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css new file mode 100644 index 0000000..dc88b5a --- /dev/null +++ b/docs/_build/html/_static/basic.css @@ -0,0 +1,632 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_build/html/_static/comment-bright.png b/docs/_build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e GIT binary patch literal 756 zcmVgfIX78 z$8Pzv({A~p%??+>KickCb#0FM1rYN=mBmQ&Nwp<#JXUhU;{|)}%&s>suq6lXw*~s{ zvHx}3C%<;wE5CH!BR{p5@ml9ws}y)=QN-kL2?#`S5d*6j zk`h<}j1>tD$b?4D^N9w}-k)bxXxFg>+#kme^xx#qg6FI-%iv2U{0h(Y)cs%5a|m%Pn_K3X_bDJ>EH#(Fb73Z zfUt2Q3B>N+ot3qb*DqbTZpFIn4a!#_R-}{?-~Hs=xSS6p&$sZ-k1zDdtqU`Y@`#qL z&zv-~)Q#JCU(dI)Hf;$CEnK=6CK50}q7~wdbI->?E07bJ0R;!GSQTs5Am`#;*WHjvHRvY?&$Lm-vq1a_BzocI^ULXV!lbMd%|^B#fY;XX)n<&R^L z=84u1e_3ziq;Hz-*k5~zwY3*oDKt0;bM@M@@89;@m*4RFgvvM_4;5LB!@OB@^WbVT zjl{t;a8_>od-~P4 m{5|DvB&z#xT;*OnJqG}gk~_7HcNkCr0000W zanA~u9RIXo;n7c96&U)YLgs-FGlx~*_c{Jgvesu1E5(8YEf&5wF=YFPcRe@1=MJmi zag(L*xc2r0(slpcN!vC5CUju;vHJkHc*&70_n2OZsK%O~A=!+YIw z7zLLl7~Z+~RgWOQ=MI6$#0pvpu$Q43 zP@36QAmu6!_9NPM?o<1_!+stoVRRZbW9#SPe!n;#A_6m8f}|xN1;H{`0RoXQ2LM47 zt(g;iZ6|pCb@h2xk&(}S3=EVBUO0e90m2Lp5CB<(SPIaB;n4))3JB87Or#XPOPcum z?<^(g+m9}VNn4Y&B`g8h{t_$+RB1%HKRY6fjtd-<7&EsU;vs0GM(Lmbhi%Gwcfs0FTF}T zL{_M6Go&E0Eg8FuB*(Yn+Z*RVTBE@10eIOb3El^MhO`GabDll(V0&FlJi2k^;q8af zkENdk2}x2)_KVp`5OAwXZM;dG0?M-S)xE1IKDi6BY@5%Or?#aZ9$gcX)dPZ&wA1a< z$rFXHPn|TBf`e?>Are8sKtKrKcjF$i^lp!zkL?C|y^vlHr1HXeVJd;1I~g&Ob-q)& z(fn7s-KI}G{wnKzg_U5G(V%bX6uk zIa+<@>rdmZYd!9Y=C0cuchrbIjuRB_Wq{-RXlic?flu1*_ux}x%(HDH&nT`k^xCeC ziHi1!ChH*sQ6|UqJpTTzX$aw8e(UfcS^f;6yBWd+(1-70zU(rtxtqR%j z-lsH|CKQJXqD{+F7V0OTv8@{~(wp(`oIP^ZykMWgR>&|RsklFMCnOo&Bd{le} zV5F6424Qzl;o2G%oVvmHgRDP9!=rK8fy^!yV8y*4p=??uIRrrr0?>O!(z*g5AvL2!4z0{sq%vhG*Po}`a<6%kTK5TNhtC8}rXNu&h^QH4A&Sk~Autm*s~45(H7+0bi^MraaRVzr05hQ3iK?j` zR#U@^i0WhkIHTg29u~|ypU?sXCQEQgXfObPW;+0YAF;|5XyaMAEM0sQ@4-xCZe=0e z7r$ofiAxn@O5#RodD8rh5D@nKQ;?lcf@tg4o+Wp44aMl~c47azN_(im0N)7OqdPBC zGw;353_o$DqGRDhuhU$Eaj!@m000000NkvXXu0mjfjZ7Z_ literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/custom.css b/docs/_build/html/_static/custom.css new file mode 100644 index 0000000..2a924f1 --- /dev/null +++ b/docs/_build/html/_static/custom.css @@ -0,0 +1 @@ +/* This file intentionally left blank. */ diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js new file mode 100644 index 0000000..5654977 --- /dev/null +++ b/docs/_build/html/_static/doctools.js @@ -0,0 +1,287 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/docs/_build/html/_static/down-pressed.png b/docs/_build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFdm2Ln;`PZ^+1>KjR?B@S0W7 z%OS_REiHONoJ6{+Ks@6k3590|7k9F+ddB6!zw3#&!aw#S`x}3V3&=A(a#84O-&F7T z^k3tZB;&iR9siw0|F|E|DAL<8r-F4!1H-;1{e*~yAKZN5f0|Ei6yUmR#Is)EM(Po_ zi`qJR6|P<~+)N+kSDgL7AjdIC_!O7Q?eGb+L+qOjm{~LLinM4NHn7U%HcK%uoMYO5 VJ~8zD2B3o(JYD@<);T3K0RV0%P>BEl literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/down.png b/docs/_build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6CVIL!hEy=F?b*7pIY7kW{q%Rg zx!yQ<9v8bmJwa`TQk7YSw}WVQ()mRdQ;TC;* literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/jquery-3.1.0.js b/docs/_build/html/_static/jquery-3.1.0.js new file mode 100644 index 0000000..f2fc274 --- /dev/null +++ b/docs/_build/html/_static/jquery-3.1.0.js @@ -0,0 +1,10074 @@ +/*eslint-disable no-unused-vars*/ +/*! + * jQuery JavaScript Library v3.1.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2016-07-07T21:44Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.1.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.0 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-04 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + // Known :disabled false positives: + // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) + // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Check form elements and option elements for explicit disabling + return "label" in elem && elem.disabled === disabled || + "form" in elem && elem.disabled === disabled || + + // Check non-disabled form elements for fieldset[disabled] ancestors + "form" in elem && elem.disabled === false && ( + // Support: IE6-11+ + // Ancestry is covered for us + elem.isDisabled === disabled || + + // Otherwise, assume any non-