Skip to content

Commit a4c88ce

Browse files
authored
Add files via upload
1 parent 00f91ed commit a4c88ce

61 files changed

Lines changed: 18661 additions & 5 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
# You can set these variables from the command line, and also
55
# from the environment for the first two.
6-
SPHINXOPTS +=
6+
SPHINXOPTS ?=
77
SPHINXBUILD ?= sphinx-build
8-
SOURCEDIR = source
9-
BUILDDIR = build
8+
SOURCEDIR = .
9+
BUILDDIR = _build
1010

1111
# Put it first so that "make" without argument is like "make help".
1212
help:

docs/_build/doctrees/api.doctree

2.89 KB
Binary file not shown.
2.4 MB
Binary file not shown.

docs/_build/doctrees/index.doctree

6.46 KB
Binary file not shown.

docs/_build/doctrees/usage.doctree

6.32 KB
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
API
2+
===
3+
4+
.. autosummary::
5+
:toctree: generated
6+
7+
lumache
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
.. include:: ../README.rst
2+
3+
Welcome to Lumache's documentation!
4+
===================================
5+
6+
**Lumache** (/lu'make/) is a Python library for cooks and food lovers
7+
that creates recipes mixing random ingredients.
8+
It pulls data from the `Open Food Facts database <https://world.openfoodfacts.org/>`_
9+
and offers a *simple* and *intuitive* API.
10+
11+
Check out the :doc:`usage` section for further information, including
12+
how to :ref:`installation` the project.
13+
14+
.. note::
15+
16+
This project is under active development.
17+
18+
Contents
19+
--------
20+
21+
.. toctree::
22+
23+
Home <self>
24+
usage
25+
api
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Usage
2+
=====
3+
4+
.. _installation:
5+
6+
Installation
7+
------------
8+
9+
To use Lumache, first install it using pip:
10+
11+
.. code-block:: console
12+
13+
(.venv) $ pip install lumache
14+
15+
Creating recipes
16+
----------------
17+
18+
To retrieve a list of random ingredients,
19+
you can use the ``lumache.get_random_ingredients()`` function:
20+
21+
.. autofunction:: lumache.get_random_ingredients
22+
23+
The ``kind`` parameter should be either ``"meat"``, ``"fish"``,
24+
or ``"veggies"``. Otherwise, :py:func:`lumache.get_random_ingredients`
25+
will raise an exception.
26+
27+
.. autoexception:: lumache.InvalidKindError
28+
29+
For example:
30+
31+
>>> import lumache
32+
>>> lumache.get_random_ingredients()
33+
['shells', 'gorgonzola', 'parsley']
34+
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/*
2+
* _sphinx_javascript_frameworks_compat.js
3+
* ~~~~~~~~~~
4+
*
5+
* Compatability shim for jQuery and underscores.js.
6+
*
7+
* WILL BE REMOVED IN Sphinx 6.0
8+
* xref RemovedInSphinx60Warning
9+
*
10+
*/
11+
12+
/**
13+
* select a different prefix for underscore
14+
*/
15+
$u = _.noConflict();
16+
17+
18+
/**
19+
* small helper function to urldecode strings
20+
*
21+
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
22+
*/
23+
jQuery.urldecode = function(x) {
24+
if (!x) {
25+
return x
26+
}
27+
return decodeURIComponent(x.replace(/\+/g, ' '));
28+
};
29+
30+
/**
31+
* small helper function to urlencode strings
32+
*/
33+
jQuery.urlencode = encodeURIComponent;
34+
35+
/**
36+
* This function returns the parsed url parameters of the
37+
* current request. Multiple values per key are supported,
38+
* it will always return arrays of strings for the value parts.
39+
*/
40+
jQuery.getQueryParameters = function(s) {
41+
if (typeof s === 'undefined')
42+
s = document.location.search;
43+
var parts = s.substr(s.indexOf('?') + 1).split('&');
44+
var result = {};
45+
for (var i = 0; i < parts.length; i++) {
46+
var tmp = parts[i].split('=', 2);
47+
var key = jQuery.urldecode(tmp[0]);
48+
var value = jQuery.urldecode(tmp[1]);
49+
if (key in result)
50+
result[key].push(value);
51+
else
52+
result[key] = [value];
53+
}
54+
return result;
55+
};
56+
57+
/**
58+
* highlight a given string on a jquery object by wrapping it in
59+
* span elements with the given class name.
60+
*/
61+
jQuery.fn.highlightText = function(text, className) {
62+
function highlight(node, addItems) {
63+
if (node.nodeType === 3) {
64+
var val = node.nodeValue;
65+
var pos = val.toLowerCase().indexOf(text);
66+
if (pos >= 0 &&
67+
!jQuery(node.parentNode).hasClass(className) &&
68+
!jQuery(node.parentNode).hasClass("nohighlight")) {
69+
var span;
70+
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
71+
if (isInSVG) {
72+
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
73+
} else {
74+
span = document.createElement("span");
75+
span.className = className;
76+
}
77+
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
78+
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
79+
document.createTextNode(val.substr(pos + text.length)),
80+
node.nextSibling));
81+
node.nodeValue = val.substr(0, pos);
82+
if (isInSVG) {
83+
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
84+
var bbox = node.parentElement.getBBox();
85+
rect.x.baseVal.value = bbox.x;
86+
rect.y.baseVal.value = bbox.y;
87+
rect.width.baseVal.value = bbox.width;
88+
rect.height.baseVal.value = bbox.height;
89+
rect.setAttribute('class', className);
90+
addItems.push({
91+
"parent": node.parentNode,
92+
"target": rect});
93+
}
94+
}
95+
}
96+
else if (!jQuery(node).is("button, select, textarea")) {
97+
jQuery.each(node.childNodes, function() {
98+
highlight(this, addItems);
99+
});
100+
}
101+
}
102+
var addItems = [];
103+
var result = this.each(function() {
104+
highlight(this, addItems);
105+
});
106+
for (var i = 0; i < addItems.length; ++i) {
107+
jQuery(addItems[i].parent).before(addItems[i].target);
108+
}
109+
return result;
110+
};
111+
112+
/*
113+
* backward compatibility for jQuery.browser
114+
* This will be supported until firefox bug is fixed.
115+
*/
116+
if (!jQuery.browser) {
117+
jQuery.uaMatch = function(ua) {
118+
ua = ua.toLowerCase();
119+
120+
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
121+
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
122+
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
123+
/(msie) ([\w.]+)/.exec(ua) ||
124+
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
125+
[];
126+
127+
return {
128+
browser: match[ 1 ] || "",
129+
version: match[ 2 ] || "0"
130+
};
131+
};
132+
jQuery.browser = {};
133+
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
134+
}

0 commit comments

Comments
 (0)