/
index.html
389 lines (355 loc) · 22.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Changelog • reticulate</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/flatly/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js" integrity="sha384-cV+rhyOuRHc9Ub/91rihWcGmMmCXDeksTtCihMupQHSsi8GIIRDG0ThDc3HGQFJ3" crossorigin="anonymous"></script>
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../jquery.sticky-kit.min.js"></script>
<script src="../pkgdown.js"></script>
<link href="../extra.css" rel="stylesheet">
<meta property="og:title" content="Changelog" />
<!-- mathjax -->
<script src='https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container template-news">
<header>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">reticulate</a>
<span class="label label-default" data-toggle="tooltip" data-placement="bottom" title="Released package">1.9</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Articles
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li class="dropdown-header">Using</li>
<li>
<a href="../articles/calling_python.html">Calling Python from R</a>
</li>
<li>
<a href="../articles/r_markdown.html">R Markdown Python Engine</a>
</li>
<li>
<a href="../articles/versions.html">Python Version Configuration</a>
</li>
<li>
<a href="../articles/python_packages.html">Installing Python Packages</a>
</li>
<li class="divider"></li>
<li class="dropdown-header">Advanced</li>
<li>
<a href="../articles/arrays.html">Arrays in R and Python</a>
</li>
<li>
<a href="../articles/package.html">Using reticulate in an R Package</a>
</li>
<li class="divider"></li>
<li class="dropdown-header">Tools</li>
<li>
<a href="../articles/rstudio_ide.html">RStudio IDE Tools for reticulate</a>
</li>
</ul>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/rstudio/reticulate">
<span class="fa fa-github"></span>
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="row">
<div class="col-md-9">
<div class="page-header">
<h1>Changelog <small></small></h1>
<small>Source: <a href='https://github.com/rstudio/reticulate/blob/master/NEWS.md'><code>NEWS.md</code></a></small>
</div>
<div class="contents">
<div id="reticulate-1-9-cran" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-9-cran" class="anchor"></a>reticulate 1.9 (CRAN)</h2>
<ul>
<li><p>Detect python 3 in environments where there is no python 2 (e.g. Ubuntu 18.04)</p></li>
<li><p>Always call r_to_py S3 method when converting objects from Python to R</p></li>
<li><p>Handle NULL module name when determining R class for Python objects</p></li>
<li><p>Convert RAW vectors to Python bytearray; Convert Python bytearray to RAW</p></li>
<li><p>Use importlib for detecting modules (rather than imp) for Python >= 3.4</p></li>
<li><p>Close text connection used for reading Python configuration probe</p></li>
</ul>
</div>
<div id="reticulate-1-8" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-8" class="anchor"></a>reticulate 1.8</h2>
<ul>
<li><p><code><a href="../reference/source_python.html">source_python()</a></code> now flushes stdout and stderr after running the associated Python script, to ensure that <code>print()</code>-ed output is output to the console. (<a href='https://github.com/rstudio/reticulate/issues/284'>#284</a>)</p></li>
<li><p>Fixed an issue where logical R matrices would not be converted correctly to their NumPy counterpart. (<a href='https://github.com/rstudio/reticulate/issues/280'>#280</a>)</p></li>
<li><p>Fixed an issue where Python chunks containing multiple statements on the same line would be evaluated and printed multiple times.</p></li>
<li><p>Added <code><a href="../reference/py_get_item.html">py_get_item()</a></code>, <code><a href="../reference/py_set_item.html">py_set_item()</a></code>, and <code><a href="../reference/py_del_item.html">py_del_item()</a></code> as lower-level APIs for directly accessing the items of e.g. a Python dictionary or a Pandas DataFrame.</p></li>
<li><p>Fix issue with Pandas column names that clash with built in methods (e.g. ‘pop’)</p></li>
<li><p>Improve default <code>str()</code> output for Python objects (print <code>__dict__</code> if available)</p></li>
</ul>
</div>
<div id="reticulate-1-7" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-7" class="anchor"></a>reticulate 1.7</h2>
<ul>
<li><p>Improved filtering of non-numeric characters in Python / NumPy versions.</p></li>
<li><p>Added <code><a href="../reference/py_func.html">py_func()</a></code> to wrap an R function in a Python function with the same signature as that of the original R function.</p></li>
<li><p>Added support for conversion between <code>Matrix::dgCMatrix</code> objects in R and <code>Scipy</code> CSC matrices in Python.</p></li>
<li><p><code><a href="../reference/source_python.html">source_python()</a></code> can now source a Python script from a URL into R environments.</p></li>
<li><p>Always run <code><a href="../reference/source_python.html">source_python()</a></code> in the main Python module.</p></li>
<li><p><code><a href="../reference/py_install.html">py_install()</a></code> function for installing Python packages into virtualenvs and conda envs</p></li>
<li><p>Automatically create conda environment for <code><a href="../reference/conda-tools.html">conda_install()</a></code></p></li>
<li><p>Removed <code>delay_load</code> parameter from <code><a href="../reference/import.html">import_from_path()</a></code></p></li>
</ul>
</div>
<div id="reticulate-1-6" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-6" class="anchor"></a>reticulate 1.6</h2>
<ul>
<li><p><code><a href="../reference/repl_python.html">repl_python()</a></code> function implementing a lightweight Python REPL in R.</p></li>
<li><p>Support for converting Pandas objects (<code>Index</code>, <code>Series</code>, <code>DataFrame</code>)</p></li>
<li><p>Support for converting Python <code>datetime</code> objects.</p></li>
<li><p><code><a href="../reference/dict.html">py_dict()</a></code> function to enable creation of dictionaries based on lists of keys and values.</p></li>
<li><p>Provide default base directory (e.g. ‘~/.virtualenvs’) for environments specified by name in <code><a href="../reference/use_python.html">use_virtualenv()</a></code>.</p></li>
<li><p>Fail when environment not found with <code><a href="../reference/use_python.html">use_condaenv(..., required = TRUE)</a></code></p></li>
<li><p>Ensure that <code>use_*</code> python version is satsified when using <code><a href="../reference/eng_python.html">eng_python()</a></code></p></li>
<li><p>Forward <code>required</code> argument from <code><a href="../reference/use_python.html">use_virtualenv()</a></code> and <code><a href="../reference/use_python.html">use_condaenv()</a></code></p></li>
<li><p>Fix leak which occurred when assigning R objects into Python containers</p></li>
<li><p>Add support for Conda Forge (enabled by default) to <code><a href="../reference/conda-tools.html">conda_install()</a></code></p></li>
<li><p>Added functions for managing Python virtual environments (virtualenv)</p></li>
</ul>
</div>
<div id="reticulate-1-5" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-5" class="anchor"></a>reticulate 1.5</h2>
<ul>
<li><p>Remove implicit documentation extraction for Python classes</p></li>
<li><p>Add <code>Library\bin</code> to PATH on Windows to ensure Anaconda can find MKL</p></li>
<li><p>New <code><a href="../reference/source_python.html">source_python()</a></code> function for sourcing Python scripts into R environments.</p></li>
</ul>
</div>
<div id="reticulate-1-4" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-4" class="anchor"></a>reticulate 1.4</h2>
<ul>
<li><p>Support for <code>RETICULATE_DUMP_STACK_TRACE</code> environment variable which can be set to the number of milliseconds in which to output into stderr the call stacks from all running threads.</p></li>
<li><p>Provide hook to change target module when delay loading</p></li>
<li><p>Scan for conda environments in system-level installations</p></li>
<li><p>Support for miniconda environments</p></li>
<li><p>Implement <code>eval</code>, <code>echo</code>, and <code>include</code> knitr chunk options for Python engine</p></li>
</ul>
</div>
<div id="reticulate-1-3-1" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-3-1" class="anchor"></a>reticulate 1.3.1</h2>
<ul>
<li>Bugfix: ensure single-line Python chunks that produce no output still have source code emitted.</li>
</ul>
</div>
<div id="reticulate-1-3" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-3" class="anchor"></a>reticulate 1.3</h2>
<ul>
<li><p>Use existing instance of Python when reticulate is loaded within an embedded Python environment (e.g. rpy2, rice, etc.)</p></li>
<li><p>Force use of Python specified in PYTHON_SESSION_INITIALIZED (defined by rpy2)</p></li>
<li><p>Define R_SESSION_INITIALIZED (used by rpy2)</p></li>
<li><p>Force use of Python when <code>required = TRUE</code> in <code>use_python</code> functions</p></li>
<li><p>Force use of Python specified by RETICULATE_PYTHON</p></li>
<li><p><code>dict</code>: Don’t scan parent frame for Python objects if a single unnamed list is passed.</p></li>
<li><p>Wait as long as required for scheduling generator calls on the main thread</p></li>
<li><p>Refine stripping of object addresses from output of <code><a href="../reference/py_str.html">py_str()</a></code> method</p></li>
<li><p>Added <code><a href="../reference/py_id.html">py_id()</a></code> function to get globally unique ids for Python objects</p></li>
<li><p>Added <code><a href="../reference/py_len.html">py_len()</a></code> function and S3 <code>length()</code> method for Python lists (already had <code>length()</code> methods for dicts, tuples, and NumPy arrays).</p></li>
<li><p>Exported <code>py</code> object (reference to Python main module)</p></li>
<li><p>Added <code><a href="../reference/eng_python.html">eng_python()</a></code> (knitr engine for Python chunks)</p></li>
<li><p>Improved compatibility with strings containing high unicode characters when running under Python 2</p></li>
<li><p>Remove <code>dim</code> methods for NumPy arrays (semantics of NumPy reshaping are different from R reshaping)</p></li>
<li><p>Added <code>array_reshape</code> function for reshaping R arrays using NumPy (row-major) semantics.</p></li>
<li><p>Provide mechanism for custom R wrapper objects for Python objects</p></li>
<li><p>Added interface to pickle (<code><a href="../reference/py_save_object.html">py_save_object()</a></code> and <code><a href="../reference/py_save_object.html">py_load_object()</a></code>)</p></li>
<li><p>Catch and print errors which occur in generator functions</p></li>
<li><p>Write using Rprintf when providing custom Python output streams (enables correct handling of terminal control characters)</p></li>
<li><p>Implement <code>isatty</code> when providing custom Python output streams</p></li>
</ul>
</div>
<div id="reticulate-1-2" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-2" class="anchor"></a>reticulate 1.2</h2>
<ul>
<li><p>Add <code>np_array</code> function for creating NumPy arrays and converting the data type, dimensions, and in-memory ordering of existing NumPy arrays.</p></li>
<li><p>Add <code>dim</code> and <code>length</code> functions for NumPy arrays</p></li>
<li><p>Add <code>py_set_seed</code> function for setting Python and NumPy random seeds.</p></li>
<li><p>Search in additional locations for Anaconda on Linux/Mac</p></li>
<li><p>Improved support for UTF-8 conversions (always use UTF-8 when converting from Python to R)</p></li>
<li><p>Ignore private ("_" prefixed) attributes of dictionaries for .DollarNames</p></li>
<li><p>Provide “`function`” rather than “function” in completions.</p></li>
<li><p>Fail gracefully if call to conda in <code>conda_list</code> results in an error</p></li>
<li><p>Add <code>pip_ignore_installed</code> option to <code>conda_install</code> function.</p></li>
</ul>
</div>
<div id="reticulate-1-1" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-1" class="anchor"></a>reticulate 1.1</h2>
<ul>
<li><p>Allow <code><a href="../reference/dict.html">dict()</a></code> function to accept keys with mixed alpha/numeric characters</p></li>
<li><p>Use <code><a href="../reference/conda-tools.html">conda_list()</a></code> to discover conda environments on Windows (slower but much more reliable than scanning the filesystem)</p></li>
<li><p>Add interface for registering F1 help handlers for Python modules</p></li>
<li><p>Provide virtual/conda env hint mechanism for delay loaded imports</p></li>
</ul>
</div>
<div id="reticulate-1-0" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-1-0" class="anchor"></a>reticulate 1.0</h2>
<ul>
<li><p>Search WORKON_HOME (used by virtualenv_wrapper) for Python environments</p></li>
<li><p>Support <code>priority</code> field for delay loaded modules.</p></li>
<li><p>Use json output from conda_list (handle spaces in path of conda env)</p></li>
<li><p>Look for callable before iterable when converting Python objects to R</p></li>
<li><p>Correct propagation of errors in R functions called from Python</p></li>
<li><p>Support for generators (creating Python iterators from R functions)</p></li>
<li><p>Changed default <code>completed</code> value for <code><a href="../reference/iterate.html">iter_next()</a></code> to <code>NULL</code> (was <code>NA</code>)</p></li>
<li><p>Support for converting 16-bit floats (NPY_HALF) to R</p></li>
<li><p>Don’t throw error when probing Python <= 2.6</p></li>
<li><p>Copy Python dictionary before converting to R named list (fixes issue with dictionaries that are mutated during iteration, e.g. sys.modules)</p></li>
<li><p>Ensure that existing warning filters aren’t reset by py_suppress_warnings</p></li>
</ul>
</div>
<div id="reticulate-0-9" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-0-9" class="anchor"></a>reticulate 0.9</h2>
<ul>
<li><p>Detect older versions of Anaconda during registry scanning.</p></li>
<li><p>Don’t probe python versions on windows when no executable is found</p></li>
<li><p>Poll for interrupts every 500ms rather than 100ms</p></li>
<li><p>Provide sys.stdout and sys.stderr when they are None (e.g. in R GUI)</p></li>
<li><p>Add Scripts directory to PATH on Windows</p></li>
<li><p>Add iter_next function for element-by-element access to iterators</p></li>
<li><p>Eliminate special print method for iterators/generators</p></li>
<li><p>Added <code><a href="../reference/py_help.html">py_help()</a></code> function for printing documentation on Python objects</p></li>
<li><p>Added <code><a href="../reference/conda-tools.html">conda_version()</a></code> function.</p></li>
<li><p>Search <code><a href="../reference/dict.html">dict()</a></code> parent frames for symbols; only use symbols which inherit from python.builtin.object as keys.</p></li>
</ul>
</div>
<div id="reticulate-0-8" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-0-8" class="anchor"></a>reticulate 0.8</h2>
<ul>
<li><p>Add <code><a href="../reference/import.html">import_from_path()</a></code> function for importing Python modules from the filesystem.</p></li>
<li><p>Add <code><a href="../reference/py_discover_config.html">py_discover_config()</a></code> function to determine which versions of Python will be discovered and which one will be used by reticulate.</p></li>
<li><p>Add <code><a href="../reference/py_function_wrapper.html">py_function_docs()</a></code> amd <code><a href="../reference/py_function_wrapper.html">py_function_wrapper()</a></code> utility functions for scaffolding R wrappers for Python functions.</p></li>
<li><p>Add <code><a href="../reference/py_last_error.html">py_last_error()</a></code> function for retreiving last Python error.</p></li>
<li><p>Convert 0-dimension NumPy arrays (scalars) to single element R vectors</p></li>
<li><p>Convert “callable” Python objects to R functions</p></li>
<li><p>Automatically add Python bin directory to system PATH for consistent version usage in reticulate and calls to system</p></li>
<li><p>Added <code>length()</code> method for tuple objects</p></li>
<li><p>Enable specification of <code>__name__</code> for R functions converted to Python functions.</p></li>
<li><p>Give priority to the first registered delay load module (previously the last registered module was given priority)</p></li>
<li><p>Add additional safety checks to detect use of NULL xptr objects (i.e. objects from a previous session). This should mean that S3 methods no longer need to check whether they are handling an xptr.</p></li>
<li><p>Added <code><a href="../reference/py_run.html">py_eval()</a></code> function for evaluating simple Python statements.</p></li>
<li><p>Add <code>local</code> option to <code><a href="../reference/py_run.html">py_run_string()</a></code> and <code><a href="../reference/py_run.html">py_run_file()</a></code>. Modify behavior to return local execution dictionary (rather than a reference to the main module).</p></li>
<li><p>Use <code>PyImport_Import</code> rather than <code>PyImport_ImportModule</code> for <code><a href="../reference/import.html">import()</a></code></p></li>
<li><p>Added ability to customize mapping of Python classes to R classes via the <code>as</code> argument to <code><a href="../reference/import.html">import()</a></code> and the <code><a href="../reference/register_class_filter.html">register_class_filter()</a></code> function</p></li>
<li><p>Added separate <code>on_load</code> and <code>on_error</code> functions for <code>delay_load</code></p></li>
<li><p>Scan customary root directories for virtualenv installations</p></li>
<li><p>Allow calling <code>__getitem__</code> via <code>[[</code> operator (zero-based to match Python style indexing)</p></li>
<li><p>Added <code>conda_*</code> family of functions for using conda utilities from within R.</p></li>
<li><p>Implement comparison operators (e.g. <code>==</code>, <code>>=</code>, etc.) for Python objects</p></li>
<li><p>Implement <code>names()</code> generic for Python objects</p></li>
<li><p>Improve performance for marshalling of large Python dictionaries and iterators that return large numbers of items.</p></li>
<li><p>Implement <code>str</code> methods for Python List, Dict, and Tuple (to prevent printing of very large collections via default <code>str</code> method)</p></li>
<li><p>Use <code>grepl()</code> rather than <code>endsWith()</code> for compatibility with R <= 3.2</p></li>
<li><p>Use <code>inspect.getmro</code> rather than <code>__bases__</code> for enumerating the base classes of Python objects.</p></li>
<li><p>Fix <code>PROTECT</code>/<code>UNPROTECT</code> issue detected by CRAN</p></li>
<li><p>Correct converstion of strings with Unicode characters on Windows</p></li>
<li><p>Fix incompatibility with system-wide Python installations on Windows</p></li>
<li><p>Fix issue with Python dictionary keys that shared names with<br>
primitive R functions (don’t check environment inheritance chain when looking for dictionary key objects by name).</p></li>
<li><p>Propagate <code>convert</code> parameter for modules with <code>delay_load</code></p></li>
</ul>
</div>
<div id="reticulate-0-7" class="section level2">
<h2 class="hasAnchor">
<a href="#reticulate-0-7" class="anchor"></a>reticulate 0.7</h2>
<ul>
<li>Initial CRAN release</li>
</ul>
</div>
</div>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<div id="tocnav">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#reticulate-1-9-cran">1.9</a></li>
<li><a href="#reticulate-1-8">1.8</a></li>
<li><a href="#reticulate-1-7">1.7</a></li>
<li><a href="#reticulate-1-6">1.6</a></li>
<li><a href="#reticulate-1-5">1.5</a></li>
<li><a href="#reticulate-1-4">1.4</a></li>
<li><a href="#reticulate-1-3-1">1.3.1</a></li>
<li><a href="#reticulate-1-3">1.3</a></li>
<li><a href="#reticulate-1-2">1.2</a></li>
<li><a href="#reticulate-1-1">1.1</a></li>
<li><a href="#reticulate-1-0">1.0</a></li>
<li><a href="#reticulate-0-9">0.9</a></li>
<li><a href="#reticulate-0-8">0.8</a></li>
<li><a href="#reticulate-0-7">0.7</a></li>
</ul>
</div>
</div>
</div>
<footer>
<div class="copyright">
<p>Developed by JJ Allaire, Kevin Ushey, <a href='https://www.rstudio.com'><img src='http://tidyverse.org/rstudio-logo.svg' alt='RStudio' height='24' /></a>, Yuan Tang.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="http://pkgdown.r-lib.org/">pkgdown</a>.</p>
</div>
</footer>
</div>
</body>
</html>