diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 7c0c89d7ec8..b36ba00662c 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,67 +1,67 @@ # How to contribute -We welcome users' contributions! However, we do have some requests for how contributions +We welcome users' contributions! However, we do have some requests for how contributions should be made. Please read these guidelines in order to avoid surprises down the road. ## Choosing something to work on -The issue tracker has a list of items that you can start working on, classified by the labels: +The issue tracker has a list of items that you can start working on, classified by the labels: * [`type:feature`](https://github.com/bokeh/bokeh/labels/type:%20feature) * [`type:task`](https://github.com/bokeh/bokeh/labels/type:%20task) * [`type:bug`](https://github.com/bokeh/bokeh/labels/type:%20bug) -In order to avoid duplication of effort, it's always a good idea to comment on an issue +In order to avoid duplication of effort, it's always a good idea to comment on an issue and let everybody know that you intend to work on it. ## Opening a new issue -1. Avoid duplicate reports. Search [GitHub](https://github.com/bokeh/bokeh/issues) and - the [mailing list](https://groups.google.com/a/continuum.io/forum/#!forum/bokeh) for +1. Avoid duplicate reports. Search [GitHub](https://github.com/bokeh/bokeh/issues) and + the [mailing list](https://groups.google.com/a/continuum.io/forum/#!forum/bokeh) for similar or identical issues. Keyword searches for your error messages are usually effective. 2. The issue may already be resolved. If possible, try to reproduce the issue using most recent - [development build](http://bokeh.pydata.org/docs/installation.html#developer-builds) of bokeh, - or even better, by building and installed from the `master` branch. -3. Try to include a *minimal*, self-contained, reproducible test case or example. The more code - or data we have to have to reproduce the issue, the less likely we will be able to. + [development build](http://bokeh.pydata.org/docs/installation.html#developer-builds) of bokeh, + or even better, by building and installed from the `master` branch. +3. Try to include a *minimal*, self-contained, reproducible test case or example. The more code + or data we have to have to reproduce the issue, the less likely we will be able to. 4. Include relevant system information. At minimum, you should provide output of: `python -c "import bokeh; print(bokeh.__version__)"` 5. Include relevant browser information (if the issue is browser-related). Just saying that you - use Chrome is generally not sufficient. We may ask you for additional information to + use Chrome is generally not sufficient. We may ask you for additional information to reproduce and fix the issue. -6. Include relevant JavaScript console and/or `bokeh serve` logs. -7. If the problem is user interface related, it is *always* good to include a screenshot. +6. Include relevant JavaScript console and/or `bokeh serve` logs. +7. If the problem is user interface related, it is *always* good to include a screenshot. 8. State the expected behavior. ## Creating a pull request (PR) -1. Make sure that there is a corresponding issue for your change first. If there isn't yet, +1. Make sure that there is a corresponding issue for your change first. If there isn't yet, create one. 2. Create a fork of the Bokeh repository on GitHub (this is only done before *first*) contribution). 3. Create a branch off the `master` branch with a meaningful name. Preferably include issue number - and a few keywords, so that we will have a rough idea what the branch refers to, without looking + and a few keywords, so that we will have a rough idea what the branch refers to, without looking up the issue. As an example: `786_property_names`. 4. Commit your changes and push them to GitHub. -5. Create a pull request against the origin's `master` branch. The PR must have a meaningful title +5. Create a pull request against the origin's `master` branch. The PR must have a meaningful title and a message explaining what was achieved, what remains to be done, maybe an example, etc. -6. We don't accept code contributions without tests. If there are valid reasons for not including a +6. We don't accept code contributions without tests. If there are valid reasons for not including a test, please discuss this in the issue. 7. We will review your PR as time permits. Reviewers may comment on your contributions, ask you questions regarding the implementation or request changes. If changes are requested, don't start a new PR, (push new commits to the existing one). Do *NOT* rebase, amend, or cherry-pick - published commits. Any of those actions will make us start the review from scratch. If you need + published commits. Any of those actions will make us start the review from scratch. If you need updates from `master`, just merge it into your branch. ## DOs and DON'Ts * **DO** follow our coding style. -* **DO** include new tests when adding new features. -* **DO** include regression tests when fixing bugs. +* **DO** include new tests when adding new features. +* **DO** include regression tests when fixing bugs. * **DO** keep the discussions focused. When a new or related topic comes up it's often better to create new issue than to side track the discussion. * **DON'T** surprise us with big pull requests. Instead, file an issue and start a discussion so we can agree on a direction before you invest a large amount of time. -* **DON'T** commit code that you didn't write. If you find BSD license compatible code that you +* **DON'T** commit code that you didn't write. If you find BSD license compatible code that you think would be useful to add to this project, file an issue and start a discussion first. diff --git a/CHANGELOG b/CHANGELOG index 7bb4f35c6c1..8a9222f5105 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -11,7 +11,7 @@ - #3931 [component: docs] Update datetimetickformatter docstring with actual default formats from the js side - #4602 [API: charts] No x-axis labels on bar graphs with a single bar - #4680 [component: bokehjs] [widgets] Datatable header height not large enough to fit header text - in jupyter notebook - - #4861 [component: bokehjs] Hovertool showing canvas coordinates not data coordinates + - #4861 [component: bokehjs] Hovertool showing canvas coordinates not data coordinates - #5305 [component: docs] [component: examples] [component: server] Embed/animated fails with "did not find model" - #5306 [component: examples] [py2] Embed/embed_multiple fails with unicode error on py2 - #5315 [component: examples] [component: server] [regression] Extension implementation load path problems in apps @@ -27,13 +27,13 @@ - #5377 [component: docs] Correct comment in dimension example plot - #5382 [component: bokehjs] Help tool icon doesn't have transparent background - #5389 Creating a line plot with `x_axis_type='log'` fails when `x_max < 1` - - #5392 [component: bokehjs] [regression] Tools cause hard crash on safari after import/export pr + - #5392 [component: bokehjs] [regression] Tools cause hard crash on safari after import/export pr - #5398 Datatable css conflict with bootstrap css - #5404 Functickformatter.from_py_func() example valueerror - #5413 [component: bokehjs] Can't use categorical axis with figure using rects - #5453 [py2] Tabe completion on bokeh.palettes doesn't work in python 2 - #5467 [component: docs] Docstring not reflecting correct function signature - - #5479 [layout] Merged toolbar is not created properly when row/column layouts added to gridplot + - #5479 [layout] Merged toolbar is not created properly when row/column layouts added to gridplot - #5490 Some named palettes raise valueerror - #5522 [component: docs] Bokeh doc website not rendered correctly in ie 11 on win 7 - #5524 [component: server] [regression] --num-procs broken @@ -64,7 +64,7 @@ - #5199 [API: models] Add support bokehjs writable and bokeh readonly properties - #5317 Add a colorblind and d3 palettes - #5329 Ability to remove tools from plot generated by mpl.to_bokeh - - #5417 [component: bokehjs] [widgets] Extend textinput with `placeholder` + - #5417 [component: bokehjs] [widgets] Extend textinput with `placeholder` - #5435 [component: bokehjs] [enh] add js callback for streaming data - #5446 [API: plotting] [component: docs] Improve glyph method function signatures - #5471 [component: bokehjs] [enh] add custom classes to elements @@ -93,7 +93,7 @@ - #5362 [component: build] Remove old bokeh-server - #5372 [component: server] Remove develop mode stub - #5375 [component: tests] [notebook] Notebook image diff tests broken due to "missing kernel" - - #5376 Change palette references for the brewer qualitative palettes to be slices + - #5376 Change palette references for the brewer qualitative palettes to be slices - #5384 [component: docs] Small docs fixes - #5395 [component: build] Please consider adding classifiers to setup.py - #5400 [component: examples] Add imdb usage notice to movies app @@ -2677,7 +2677,7 @@ - #395 Added script for load and install the extension. - #396 Added a little notebook to explain some ways to use the bokeh extension. - #397 Added script to generate changelog. - - #399 let figure() accept keyword arguments for next plot + - #399 let figure() accept keyword arguments for next plot - #411 Add point hit testing to other circle-like glyphs * bugfixes: - #377 np not imported, zeros_like is diff --git a/LICENSE.txt b/LICENSE.txt index 545b321bb8b..474408ba5dc 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -12,17 +12,17 @@ this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Continuum Analytics nor the names of any contributors -may be used to endorse or promote products derived from this software +may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/bokeh/core/compat/mplexporter/latest_commit.txt b/bokeh/core/compat/mplexporter/latest_commit.txt index 2e45cb91f96..8c264eeac89 100644 --- a/bokeh/core/compat/mplexporter/latest_commit.txt +++ b/bokeh/core/compat/mplexporter/latest_commit.txt @@ -3,4 +3,3 @@ Author: Jake Vanderplas Date: Sat Apr 19 08:18:20 2014 -0700 BUG: correctly handle color='none' - diff --git a/bokeh/sampledata/olympics2014.json b/bokeh/sampledata/olympics2014.json index 4b348638dae..470ab34336f 100644 --- a/bokeh/sampledata/olympics2014.json +++ b/bokeh/sampledata/olympics2014.json @@ -1 +1 @@ -{"count": 87, "object": "list", "data": [{"name": "Albania", "abbr": "ALB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Andorra", "abbr": "AND", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Argentina", "abbr": "ARG", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Armenia", "abbr": "ARM", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "AUS", "medals": {"total": 3, "bronze": 1, "gold": 0, "silver": 2}, "name": "Australia"}, {"abbr": "AUT", "medals": {"total": 9, "bronze": 1, "gold": 2, "silver": 6}, "name": "Austria"}, {"name": "Azerbaijan", "abbr": "AZE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "BLR", "medals": {"total": 6, "bronze": 1, "gold": 5, "silver": 0}, "name": "Belarus"}, {"abbr": "BEL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Belgium"}, {"name": "Bermuda", "abbr": "BMU", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Bosnia And Herzegovina", "abbr": "BIH", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Brazil", "abbr": "BRA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "BGR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Bulgaria"}, {"abbr": "CAN", "medals": {"total": 16, "bronze": 4, "gold": 4, "silver": 8}, "name": "Canada"}, {"name": "Cayman Islands", "abbr": "CYM", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Chile", "abbr": "CHL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "CHN", "medals": {"total": 6, "bronze": 1, "gold": 3, "silver": 2}, "name": "China"}, {"name": "Chinese Taipei", "abbr": "TWN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "HRV", "medals": {"total": 1, "bronze": 0, "gold": 0, "silver": 1}, "name": "Croatia"}, {"name": "Cyprus", "abbr": "CYP", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "CZE", "medals": {"total": 6, "bronze": 2, "gold": 1, "silver": 3}, "name": "Czech Republic"}, {"abbr": "DNK", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Denmark"}, {"name": "Dominica", "abbr": "DMA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "EST", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Estonia"}, {"abbr": "FIN", "medals": {"total": 3, "bronze": 0, "gold": 0, "silver": 3}, "name": "Finland"}, {"abbr": "FRA", "medals": {"total": 10, "bronze": 5, "gold": 3, "silver": 2}, "name": "France"}, {"name": "Georgia", "abbr": "GEO", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "DEU", "medals": {"total": 15, "bronze": 4, "gold": 8, "silver": 3}, "name": "Germany"}, {"abbr": "GBR", "medals": {"total": 2, "bronze": 1, "gold": 1, "silver": 0}, "name": "Great Britain"}, {"name": "Greece", "abbr": "GRC", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Hong Kong", "abbr": "HKG", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "HUN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Hungary"}, {"name": "Iceland", "abbr": "ISL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Ir Iran", "abbr": "IRI", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Ireland", "abbr": "IRL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Israel", "abbr": "ISR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "ITA", "medals": {"total": 6, "bronze": 4, "gold": 0, "silver": 2}, "name": "Italy"}, {"name": "Jamaica", "abbr": "JAM", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "JPN", "medals": {"total": 7, "bronze": 2, "gold": 1, "silver": 4}, "name": "Japan"}, {"abbr": "KAZ", "medals": {"total": 1, "bronze": 1, "gold": 0, "silver": 0}, "name": "Kazakhstan"}, {"abbr": "KOR", "medals": {"total": 4, "bronze": 1, "gold": 2, "silver": 1}, "name": "Korea"}, {"name": "Kyrgyzstan", "abbr": "KGZ", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "LVA", "medals": {"total": 3, "bronze": 2, "gold": 0, "silver": 1}, "name": "Latvia"}, {"name": "Lebanon", "abbr": "LBN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "LIE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Liechtenstein"}, {"name": "Lithuania", "abbr": "LTU", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "LUX", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Luxembourg"}, {"name": "Malta", "abbr": "MLT", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Mexico", "abbr": "MEX", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Monaco", "abbr": "MCO", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Mongolia", "abbr": "MNG", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Montenegro", "abbr": "MNE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Morocco", "abbr": "MAR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Nepal", "abbr": "NPL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "NLD", "medals": {"total": 20, "bronze": 8, "gold": 6, "silver": 6}, "name": "Netherlands"}, {"abbr": "NZL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "New Zealand"}, {"abbr": "NOR", "medals": {"total": 19, "bronze": 7, "gold": 8, "silver": 4}, "name": "Norway"}, {"name": "Pakistan", "abbr": "PAK", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Paraguay", "abbr": "PRY", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Peru", "abbr": "PER", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Philippines", "abbr": "PHL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "POL", "medals": {"total": 4, "bronze": 0, "gold": 4, "silver": 0}, "name": "Poland"}, {"name": "Portugal", "abbr": "PRT", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Rep. Of Moldova", "abbr": "MDA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "ROU", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Romania"}, {"abbr": "RUS", "medals": {"total": 21, "bronze": 7, "gold": 6, "silver": 8}, "name": "Russian Fed."}, {"name": "San Marino", "abbr": "SMR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Serbia", "abbr": "SRB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "SVK", "medals": {"total": 1, "bronze": 0, "gold": 1, "silver": 0}, "name": "Slovakia"}, {"abbr": "SVN", "medals": {"total": 7, "bronze": 4, "gold": 2, "silver": 1}, "name": "Slovenia"}, {"abbr": "ESP", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Spain"}, {"abbr": "SWE", "medals": {"total": 9, "bronze": 2, "gold": 2, "silver": 5}, "name": "Sweden"}, {"abbr": "CHE", "medals": {"total": 10, "bronze": 1, "gold": 6, "silver": 3}, "name": "Switzerland"}, {"name": "Tajikistan", "abbr": "TJK", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Thailand", "abbr": "THA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "The Former Yugoslav Republic Of Macedonia", "abbr": "MKD", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Timor-leste", "abbr": "TLS", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Togo", "abbr": "TGO", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Tonga", "abbr": "TON", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Turkey", "abbr": "TUR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "UKR", "medals": {"total": 1, "bronze": 1, "gold": 0, "silver": 0}, "name": "Ukraine"}, {"abbr": "USA", "medals": {"total": 20, "bronze": 10, "gold": 6, "silver": 4}, "name": "United States"}, {"abbr": "UZB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Uzbekistan"}, {"name": "Venezuela", "abbr": "VEN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Virgin Isl, B", "abbr": "IVB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Virgin Isl, Us", "abbr": "ISV", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Zimbabwe", "abbr": "ZWE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}]} \ No newline at end of file +{"count": 87, "object": "list", "data": [{"name": "Albania", "abbr": "ALB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Andorra", "abbr": "AND", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Argentina", "abbr": "ARG", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Armenia", "abbr": "ARM", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "AUS", "medals": {"total": 3, "bronze": 1, "gold": 0, "silver": 2}, "name": "Australia"}, {"abbr": "AUT", "medals": {"total": 9, "bronze": 1, "gold": 2, "silver": 6}, "name": "Austria"}, {"name": "Azerbaijan", "abbr": "AZE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "BLR", "medals": {"total": 6, "bronze": 1, "gold": 5, "silver": 0}, "name": "Belarus"}, {"abbr": "BEL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Belgium"}, {"name": "Bermuda", "abbr": "BMU", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Bosnia And Herzegovina", "abbr": "BIH", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Brazil", "abbr": "BRA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "BGR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Bulgaria"}, {"abbr": "CAN", "medals": {"total": 16, "bronze": 4, "gold": 4, "silver": 8}, "name": "Canada"}, {"name": "Cayman Islands", "abbr": "CYM", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Chile", "abbr": "CHL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "CHN", "medals": {"total": 6, "bronze": 1, "gold": 3, "silver": 2}, "name": "China"}, {"name": "Chinese Taipei", "abbr": "TWN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "HRV", "medals": {"total": 1, "bronze": 0, "gold": 0, "silver": 1}, "name": "Croatia"}, {"name": "Cyprus", "abbr": "CYP", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "CZE", "medals": {"total": 6, "bronze": 2, "gold": 1, "silver": 3}, "name": "Czech Republic"}, {"abbr": "DNK", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Denmark"}, {"name": "Dominica", "abbr": "DMA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "EST", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Estonia"}, {"abbr": "FIN", "medals": {"total": 3, "bronze": 0, "gold": 0, "silver": 3}, "name": "Finland"}, {"abbr": "FRA", "medals": {"total": 10, "bronze": 5, "gold": 3, "silver": 2}, "name": "France"}, {"name": "Georgia", "abbr": "GEO", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "DEU", "medals": {"total": 15, "bronze": 4, "gold": 8, "silver": 3}, "name": "Germany"}, {"abbr": "GBR", "medals": {"total": 2, "bronze": 1, "gold": 1, "silver": 0}, "name": "Great Britain"}, {"name": "Greece", "abbr": "GRC", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Hong Kong", "abbr": "HKG", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "HUN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Hungary"}, {"name": "Iceland", "abbr": "ISL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Ir Iran", "abbr": "IRI", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Ireland", "abbr": "IRL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Israel", "abbr": "ISR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "ITA", "medals": {"total": 6, "bronze": 4, "gold": 0, "silver": 2}, "name": "Italy"}, {"name": "Jamaica", "abbr": "JAM", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "JPN", "medals": {"total": 7, "bronze": 2, "gold": 1, "silver": 4}, "name": "Japan"}, {"abbr": "KAZ", "medals": {"total": 1, "bronze": 1, "gold": 0, "silver": 0}, "name": "Kazakhstan"}, {"abbr": "KOR", "medals": {"total": 4, "bronze": 1, "gold": 2, "silver": 1}, "name": "Korea"}, {"name": "Kyrgyzstan", "abbr": "KGZ", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "LVA", "medals": {"total": 3, "bronze": 2, "gold": 0, "silver": 1}, "name": "Latvia"}, {"name": "Lebanon", "abbr": "LBN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "LIE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Liechtenstein"}, {"name": "Lithuania", "abbr": "LTU", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "LUX", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Luxembourg"}, {"name": "Malta", "abbr": "MLT", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Mexico", "abbr": "MEX", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Monaco", "abbr": "MCO", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Mongolia", "abbr": "MNG", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Montenegro", "abbr": "MNE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Morocco", "abbr": "MAR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Nepal", "abbr": "NPL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "NLD", "medals": {"total": 20, "bronze": 8, "gold": 6, "silver": 6}, "name": "Netherlands"}, {"abbr": "NZL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "New Zealand"}, {"abbr": "NOR", "medals": {"total": 19, "bronze": 7, "gold": 8, "silver": 4}, "name": "Norway"}, {"name": "Pakistan", "abbr": "PAK", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Paraguay", "abbr": "PRY", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Peru", "abbr": "PER", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Philippines", "abbr": "PHL", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "POL", "medals": {"total": 4, "bronze": 0, "gold": 4, "silver": 0}, "name": "Poland"}, {"name": "Portugal", "abbr": "PRT", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Rep. Of Moldova", "abbr": "MDA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "ROU", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Romania"}, {"abbr": "RUS", "medals": {"total": 21, "bronze": 7, "gold": 6, "silver": 8}, "name": "Russian Fed."}, {"name": "San Marino", "abbr": "SMR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Serbia", "abbr": "SRB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "SVK", "medals": {"total": 1, "bronze": 0, "gold": 1, "silver": 0}, "name": "Slovakia"}, {"abbr": "SVN", "medals": {"total": 7, "bronze": 4, "gold": 2, "silver": 1}, "name": "Slovenia"}, {"abbr": "ESP", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Spain"}, {"abbr": "SWE", "medals": {"total": 9, "bronze": 2, "gold": 2, "silver": 5}, "name": "Sweden"}, {"abbr": "CHE", "medals": {"total": 10, "bronze": 1, "gold": 6, "silver": 3}, "name": "Switzerland"}, {"name": "Tajikistan", "abbr": "TJK", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Thailand", "abbr": "THA", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "The Former Yugoslav Republic Of Macedonia", "abbr": "MKD", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Timor-leste", "abbr": "TLS", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Togo", "abbr": "TGO", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Tonga", "abbr": "TON", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Turkey", "abbr": "TUR", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"abbr": "UKR", "medals": {"total": 1, "bronze": 1, "gold": 0, "silver": 0}, "name": "Ukraine"}, {"abbr": "USA", "medals": {"total": 20, "bronze": 10, "gold": 6, "silver": 4}, "name": "United States"}, {"abbr": "UZB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}, "name": "Uzbekistan"}, {"name": "Venezuela", "abbr": "VEN", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Virgin Isl, B", "abbr": "IVB", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Virgin Isl, Us", "abbr": "ISV", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}, {"name": "Zimbabwe", "abbr": "ZWE", "medals": {"gold": 0, "total": 0, "silver": 0, "bronze": 0}}]} diff --git a/bokeh/sampledata/percent-bachelors-degrees-women-usa.csv b/bokeh/sampledata/percent-bachelors-degrees-women-usa.csv index 1e488d0233d..56226c7fee9 100644 --- a/bokeh/sampledata/percent-bachelors-degrees-women-usa.csv +++ b/bokeh/sampledata/percent-bachelors-degrees-women-usa.csv @@ -40,4 +40,4 @@ Year,Agriculture,Architecture,Art and Performance,Biology,Business,Communication 2008,47.570834,42.71173041,60.7,59.30576517,48.88802678,62.4,17.8,79.19632674,16.5,67.59402834,70.2,85.2,43.3,40.7,77.2,81.7,49.4 2009,48.66722357,43.34892051,61,58.48958333,48.84047414,62.8,18.1,79.5329087,16.8,67.96979204,69.3,85.1,43.3,40.7,77.1,82,49.4 2010,48.73004227,42.06672091,61.3,59.01025521,48.75798769,62.5,17.6,79.61862451,17.2,67.92810557,69,85,43.1,40.2,77,81.7,49.3 -2011,50.03718193,42.7734375,61.2,58.7423969,48.18041792,62.2,18.2,79.43281184,17.5,68.42673015,69.5,84.8,43.1,40.1,76.7,81.9,49.2 \ No newline at end of file +2011,50.03718193,42.7734375,61.2,58.7423969,48.18041792,62.2,18.2,79.43281184,17.5,68.42673015,69.5,84.8,43.1,40.1,76.7,81.9,49.2 diff --git a/bokeh/sampledata/us_marriages_divorces.csv b/bokeh/sampledata/us_marriages_divorces.csv index ef30008d1f0..aedf660a8ec 100644 --- a/bokeh/sampledata/us_marriages_divorces.csv +++ b/bokeh/sampledata/us_marriages_divorces.csv @@ -1 +1 @@ -Year,Marriages,Divorces,Population,Marriages_per_1000,Divorces_per_1000 1867,357000,10000,36970000,9.7,0.3 1868,345000,10000,37885000,9.1,0.3 1869,348000,11000,38870000,9,0.3 1870,352000,11000,39905000,8.8,0.3 1871,359000,12000,41010000,8.8,0.3 1872,378000,12000,42066000,9,0.3 1873,386000,13000,43225000,8.9,0.3 1874,385000,14000,44429000,8.7,0.3 1875,409000,14000,45492000,9,0.3 1876,405000,15000,46459000,8.7,0.3 1877,411000,16000,47400000,8.7,0.3 1878,423000,16000,48319000,8.8,0.3 1879,438000,17000,49264000,8.9,0.3 1880,453000,20000,50262000,9,0.4 1881,464000,21000,51466000,9,0.4 1882,484000,22000,52893000,9.2,0.4 1883,501000,23000,54435000,9.2,0.4 1884,485000,23000,55826000,8.7,0.4 1885,507000,23000,57128000,8.9,0.4 1886,534000,26000,58258000,9.2,0.4 1887,513000,28000,59357000,8.6,0.5 1888,535000,29000,60614000,8.8,0.5 1889,563000,32000,61893000,9.1,0.5 1890,570000,33000,63056000,9,0.5 1891,592000,36000,64432000,9.2,0.6 1892,601000,37000,65920000,9.1,0.6 1893,601000,37000,67470000,8.9,0.5 1894,588000,38000,68910000,8.5,0.6 1895,620000,40000,70076000,8.8,0.6 1896,635000,43000,71188000,8.9,0.6 1897,643000,45000,72441000,8.9,0.6 1898,647000,48000,73600000,8.8,0.7 1899,673000,51000,74793000,9,0.7 1900,709000,56000,76094000,9.3,0.7 1901,742000,61000,77584000,9.6,0.8 1902,776000,61000,79163000,9.8,0.8 1903,818000,65000,80632000,10.1,0.8 1904,815000,66000,82166000,9.9,0.8 1905,842000,68000,83822000,10,0.8 1906,895000,72000,85450000,10.5,0.8 1907,937000,77000,87008000,10.8,0.9 1908,857000,77000,88710000,9.7,0.9 1909,897000,80000,90490000,9.9,0.9 1910,948000,83000,92407000,10.3,0.9 1911,955000,89000,93863000,10.2,0.9 1912,1005000,94000,95335000,10.5,1 1913,1021000,91000,97225000,10.5,0.9 1914,1025000,101000,99111000,10.3,1 1915,1008000,104000,100546000,10,1 1916,1076000,114000,101961000,10.6,1.1 1917,1144000,122000,103414000,11.1,1.2 1918,1000000,116000,104550000,9.6,1.1 1919,1150000,142000,105063000,10.9,1.4 1920,1274000,171000,106461000,12,1.6 1921,1164000,160000,108538000,10.7,1.5 1922,1134000,149000,110049000,10.3,1.4 1923,1230000,165000,111947000,11,1.5 1924,1185000,171000,114109000,10.4,1.5 1925,1188000,175000,115829000,10.3,1.5 1926,1203000,185000,117397000,10.2,1.6 1927,1201000,196000,119035000,10.1,1.6 1928,1182000,200000,120509000,9.8,1.7 1929,1233000,206000,121878000,10.1,1.7 1930,1127000,196000,123188000,9.1,1.6 1931,1061000,188000,124149000,8.5,1.5 1932,982000,164000,124949000,7.9,1.3 1933,1098000,165000,125690000,8.7,1.3 1934,1302000,204000,126485000,10.3,1.6 1935,1327000,218000,127362000,10.4,1.7 1936,1369000,236000,128181000,10.7,1.8 1937,1451000,249000,128961000,11.3,1.9 1938,1331000,244000,129969000,10.2,1.9 1939,1404000,251000,131028000,10.7,1.9 1940,1596000,264000,132122000,12.1,2 1941,1696000,293000,133402000,12.7,2.2 1942,1772000,321000,134860000,13.1,2.4 1943,1577000,359000,136739000,11.5,2.6 1944,1452000,400000,138397000,10.5,2.9 1945,1613000,485000,139928000,11.5,3.5 1946,2291000,610000,141389000,16.2,4.3 1947,1992000,483000,144126000,13.8,3.4 1948,1811000,408000,146631000,12.4,2.8 1949,1580000,397000,149188000,10.6,2.7 1950,1667000,385000,151684000,11,2.5 1951,1595000,381000,154287000,10.3,2.5 1952,1539000,392000,156954000,9.8,2.5 1953,1546000,390000,159565000,9.7,2.4 1954,1490000,379000,162391000,9.2,2.3 1955,1531000,377000,165275000,9.3,2.3 1956,1585000,382000,168221000,9.4,2.3 1957,1518000,381000,171274000,8.9,2.2 1958,1451000,368000,174141000,8.3,2.1 1959,1494000,395000,177130000,8.4,2.2 1960,1523000,393000,180760000,8.4,2.2 1961,1548000,414000,183742000,8.4,2.3 1962,1577000,413000,186590000,8.5,2.2 1963,1654000,428000,189300000,8.7,2.3 1964,1725000,450000,191927000,9,2.3 1965,1800000,479000,194347000,9.3,2.5 1966,1857000,499000,196599000,9.4,2.5 1967,1927000,523000,198752000,9.7,2.6 1968,2069000,584000,200745000,10.3,2.9 1969,2145000,639000,202736000,10.6,3.2 1970,2185802,708000,205089000,10.7,3.5 1971,2190481,773000,207692000,10.5,3.7 1972,2282154,845000,209924000,10.9,4 1973,2284108,915000,211939000,10.8,4.3 1974,2245929,983931,213898000,10.5,4.6 1975,2159810,1036709,215981000,10,4.8 1976,2159051,1090430,218086000,9.9,5 1977,2180861,1101445,220289000,9.9,5 1978,2293079,1135408,222629000,10.3,5.1 1979,2341102,1193062,225106000,10.4,5.3 1980,2413896,1184175,227726000,10.6,5.2 1981,2438085,1219042,230008000,10.6,5.3 1982,,,232218000,, 1983,,,234333000,, 1984,2482137,1181970,236394000,10.5,5 1985,2408911,1192530,238506000,10.1,5 1986,2406830,1179347,240683000,10,4.9 1987,2404146,1165646,242843000,9.9,4.8 1988,2377092,1151787,245061000,9.7,4.7 1989,2399654,1162719,247387000,9.7,4.7 1990,2451774,1175851,250181000,9.8,4.7 1991,2383182,1191591,253530000,9.4,4.7 1992,2389375,1233226,256922000,9.3,4.8 1993,2342538,1197297,260282000,9,4.6 1994,2397441,1211893,263455000,9.1,4.6 1995,,,266588000,, 1996,,,269714000,, 1997,2384000,1163000,272958000,8.7,4.3 1998,2244000,1135000,276154000,8.1,4.1 1999,2358000,1145245,279328000,8.4,4.1 2000,2315000,944000,282398000,8.2,3.3 2001,2326000,940000,285225000,8.2,3.3 2002,2290000,955000,287955000,8,3.3 2003,2245000,927000,290626000,7.7,3.2 2004,2279000,879000,293262000,7.8,3 2005,2249000,847000,295993000,7.6,2.9 2006,2193000,872000,298818000,7.3,2.9 2007,2197000,856000,301696000,7.3,2.8 2008,2157000,844000,304543000,7.1,2.8 2009,2080000,840000,307240000,6.8,2.7 2010,2096000,872000,309776000,6.8,2.8 2011,2118000,877000,312034000,6.8,2.8 \ No newline at end of file +Year,Marriages,Divorces,Population,Marriages_per_1000,Divorces_per_1000 1867,357000,10000,36970000,9.7,0.3 1868,345000,10000,37885000,9.1,0.3 1869,348000,11000,38870000,9,0.3 1870,352000,11000,39905000,8.8,0.3 1871,359000,12000,41010000,8.8,0.3 1872,378000,12000,42066000,9,0.3 1873,386000,13000,43225000,8.9,0.3 1874,385000,14000,44429000,8.7,0.3 1875,409000,14000,45492000,9,0.3 1876,405000,15000,46459000,8.7,0.3 1877,411000,16000,47400000,8.7,0.3 1878,423000,16000,48319000,8.8,0.3 1879,438000,17000,49264000,8.9,0.3 1880,453000,20000,50262000,9,0.4 1881,464000,21000,51466000,9,0.4 1882,484000,22000,52893000,9.2,0.4 1883,501000,23000,54435000,9.2,0.4 1884,485000,23000,55826000,8.7,0.4 1885,507000,23000,57128000,8.9,0.4 1886,534000,26000,58258000,9.2,0.4 1887,513000,28000,59357000,8.6,0.5 1888,535000,29000,60614000,8.8,0.5 1889,563000,32000,61893000,9.1,0.5 1890,570000,33000,63056000,9,0.5 1891,592000,36000,64432000,9.2,0.6 1892,601000,37000,65920000,9.1,0.6 1893,601000,37000,67470000,8.9,0.5 1894,588000,38000,68910000,8.5,0.6 1895,620000,40000,70076000,8.8,0.6 1896,635000,43000,71188000,8.9,0.6 1897,643000,45000,72441000,8.9,0.6 1898,647000,48000,73600000,8.8,0.7 1899,673000,51000,74793000,9,0.7 1900,709000,56000,76094000,9.3,0.7 1901,742000,61000,77584000,9.6,0.8 1902,776000,61000,79163000,9.8,0.8 1903,818000,65000,80632000,10.1,0.8 1904,815000,66000,82166000,9.9,0.8 1905,842000,68000,83822000,10,0.8 1906,895000,72000,85450000,10.5,0.8 1907,937000,77000,87008000,10.8,0.9 1908,857000,77000,88710000,9.7,0.9 1909,897000,80000,90490000,9.9,0.9 1910,948000,83000,92407000,10.3,0.9 1911,955000,89000,93863000,10.2,0.9 1912,1005000,94000,95335000,10.5,1 1913,1021000,91000,97225000,10.5,0.9 1914,1025000,101000,99111000,10.3,1 1915,1008000,104000,100546000,10,1 1916,1076000,114000,101961000,10.6,1.1 1917,1144000,122000,103414000,11.1,1.2 1918,1000000,116000,104550000,9.6,1.1 1919,1150000,142000,105063000,10.9,1.4 1920,1274000,171000,106461000,12,1.6 1921,1164000,160000,108538000,10.7,1.5 1922,1134000,149000,110049000,10.3,1.4 1923,1230000,165000,111947000,11,1.5 1924,1185000,171000,114109000,10.4,1.5 1925,1188000,175000,115829000,10.3,1.5 1926,1203000,185000,117397000,10.2,1.6 1927,1201000,196000,119035000,10.1,1.6 1928,1182000,200000,120509000,9.8,1.7 1929,1233000,206000,121878000,10.1,1.7 1930,1127000,196000,123188000,9.1,1.6 1931,1061000,188000,124149000,8.5,1.5 1932,982000,164000,124949000,7.9,1.3 1933,1098000,165000,125690000,8.7,1.3 1934,1302000,204000,126485000,10.3,1.6 1935,1327000,218000,127362000,10.4,1.7 1936,1369000,236000,128181000,10.7,1.8 1937,1451000,249000,128961000,11.3,1.9 1938,1331000,244000,129969000,10.2,1.9 1939,1404000,251000,131028000,10.7,1.9 1940,1596000,264000,132122000,12.1,2 1941,1696000,293000,133402000,12.7,2.2 1942,1772000,321000,134860000,13.1,2.4 1943,1577000,359000,136739000,11.5,2.6 1944,1452000,400000,138397000,10.5,2.9 1945,1613000,485000,139928000,11.5,3.5 1946,2291000,610000,141389000,16.2,4.3 1947,1992000,483000,144126000,13.8,3.4 1948,1811000,408000,146631000,12.4,2.8 1949,1580000,397000,149188000,10.6,2.7 1950,1667000,385000,151684000,11,2.5 1951,1595000,381000,154287000,10.3,2.5 1952,1539000,392000,156954000,9.8,2.5 1953,1546000,390000,159565000,9.7,2.4 1954,1490000,379000,162391000,9.2,2.3 1955,1531000,377000,165275000,9.3,2.3 1956,1585000,382000,168221000,9.4,2.3 1957,1518000,381000,171274000,8.9,2.2 1958,1451000,368000,174141000,8.3,2.1 1959,1494000,395000,177130000,8.4,2.2 1960,1523000,393000,180760000,8.4,2.2 1961,1548000,414000,183742000,8.4,2.3 1962,1577000,413000,186590000,8.5,2.2 1963,1654000,428000,189300000,8.7,2.3 1964,1725000,450000,191927000,9,2.3 1965,1800000,479000,194347000,9.3,2.5 1966,1857000,499000,196599000,9.4,2.5 1967,1927000,523000,198752000,9.7,2.6 1968,2069000,584000,200745000,10.3,2.9 1969,2145000,639000,202736000,10.6,3.2 1970,2185802,708000,205089000,10.7,3.5 1971,2190481,773000,207692000,10.5,3.7 1972,2282154,845000,209924000,10.9,4 1973,2284108,915000,211939000,10.8,4.3 1974,2245929,983931,213898000,10.5,4.6 1975,2159810,1036709,215981000,10,4.8 1976,2159051,1090430,218086000,9.9,5 1977,2180861,1101445,220289000,9.9,5 1978,2293079,1135408,222629000,10.3,5.1 1979,2341102,1193062,225106000,10.4,5.3 1980,2413896,1184175,227726000,10.6,5.2 1981,2438085,1219042,230008000,10.6,5.3 1982,,,232218000,, 1983,,,234333000,, 1984,2482137,1181970,236394000,10.5,5 1985,2408911,1192530,238506000,10.1,5 1986,2406830,1179347,240683000,10,4.9 1987,2404146,1165646,242843000,9.9,4.8 1988,2377092,1151787,245061000,9.7,4.7 1989,2399654,1162719,247387000,9.7,4.7 1990,2451774,1175851,250181000,9.8,4.7 1991,2383182,1191591,253530000,9.4,4.7 1992,2389375,1233226,256922000,9.3,4.8 1993,2342538,1197297,260282000,9,4.6 1994,2397441,1211893,263455000,9.1,4.6 1995,,,266588000,, 1996,,,269714000,, 1997,2384000,1163000,272958000,8.7,4.3 1998,2244000,1135000,276154000,8.1,4.1 1999,2358000,1145245,279328000,8.4,4.1 2000,2315000,944000,282398000,8.2,3.3 2001,2326000,940000,285225000,8.2,3.3 2002,2290000,955000,287955000,8,3.3 2003,2245000,927000,290626000,7.7,3.2 2004,2279000,879000,293262000,7.8,3 2005,2249000,847000,295993000,7.6,2.9 2006,2193000,872000,298818000,7.3,2.9 2007,2197000,856000,301696000,7.3,2.8 2008,2157000,844000,304543000,7.1,2.8 2009,2080000,840000,307240000,6.8,2.7 2010,2096000,872000,309776000,6.8,2.8 2011,2118000,877000,312034000,6.8,2.8 diff --git a/bokeh/sphinxext/_templates/model_detail.rst b/bokeh/sphinxext/_templates/model_detail.rst index 414b63ea26b..2edbe7a0997 100644 --- a/bokeh/sphinxext/_templates/model_detail.rst +++ b/bokeh/sphinxext/_templates/model_detail.rst @@ -9,4 +9,4 @@ .. collapsible-code-block:: javascript :heading: JSON Prototype - {{ model_json|indent(4) }} \ No newline at end of file + {{ model_json|indent(4) }} diff --git a/bokeh/sphinxext/_templates/options_detail.rst b/bokeh/sphinxext/_templates/options_detail.rst index 714e318de5e..e956f2635b2 100644 --- a/bokeh/sphinxext/_templates/options_detail.rst +++ b/bokeh/sphinxext/_templates/options_detail.rst @@ -1,4 +1,3 @@ - Options ------- @@ -10,5 +9,3 @@ Options {{ opt['doc']|indent(4) }} {% endfor %} - - diff --git a/bokehjs/CHANGELOG.md b/bokehjs/CHANGELOG.md index 2db8faa86b1..609bfb516dc 100644 --- a/bokehjs/CHANGELOG.md +++ b/bokehjs/CHANGELOG.md @@ -1,5 +1,5 @@ BokehJS is a subproject of Bokeh. Please consult the CHANGELOG at - https://github.com/bokeh/bokeh/blob/master/CHANGELOG + https://github.com/bokeh/bokeh/blob/master/CHANGELOG for full information. diff --git a/bokehjs/CONTRIBUTING.md b/bokehjs/CONTRIBUTING.md index 3d7895288f9..2813043289a 100644 --- a/bokehjs/CONTRIBUTING.md +++ b/bokehjs/CONTRIBUTING.md @@ -1,2 +1,2 @@ -Please consult http://bokeh.pydata.org/docs/contributing.html for more -information about contributing to BokehJS. +Please consult http://bokeh.pydata.org/docs/contributing.html for more +information about contributing to BokehJS. diff --git a/bokehjs/LICENSE b/bokehjs/LICENSE index 6b9b0d82682..11182024624 100644 --- a/bokehjs/LICENSE +++ b/bokehjs/LICENSE @@ -12,17 +12,17 @@ this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Continuum Analytics nor the names of any contributors -may be used to endorse or promote products derived from this software +may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/bokehjs/README.md b/bokehjs/README.md index 36d569b0eb0..b5f761df701 100644 --- a/bokehjs/README.md +++ b/bokehjs/README.md @@ -25,4 +25,3 @@ so the development priorities will tend to center around those tasks, until the project reaches a point of stability. Please join the discussion on the [Bokeh mailing list](https://groups.google.com/a/continuum.io/forum/#!forum/bokeh). - diff --git a/classifiers.txt b/classifiers.txt index 0888c2e99b8..f2a86aa7ce8 100644 --- a/classifiers.txt +++ b/classifiers.txt @@ -19,4 +19,4 @@ Topic :: Utilities Programming Language :: Python Programming Language :: Python :: 2 Programming Language :: Python :: 3 -Programming Language :: JavaScript \ No newline at end of file +Programming Language :: JavaScript diff --git a/examples/app/clustering/README.md b/examples/app/clustering/README.md index 6cdca36a8af..8e652fc6132 100644 --- a/examples/app/clustering/README.md +++ b/examples/app/clustering/README.md @@ -16,7 +16,7 @@ To install using pip, execute the command: To view the app directly from a Bokeh server, navigate to the parent -directory [`examples/app`]([`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app)), +directory [`examples/app`]([`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app)), and execute the command: - bokeh serve --show clustering + bokeh serve --show clustering diff --git a/examples/app/clustering/theme.yaml b/examples/app/clustering/theme.yaml index ab939448def..e4993df8670 100644 --- a/examples/app/clustering/theme.yaml +++ b/examples/app/clustering/theme.yaml @@ -1,4 +1,3 @@ - attrs: Figure: plot_width: 400 diff --git a/examples/app/crossfilter/templates/index.html b/examples/app/crossfilter/templates/index.html index c874e998d2c..1bf8e833942 100644 --- a/examples/app/crossfilter/templates/index.html +++ b/examples/app/crossfilter/templates/index.html @@ -21,4 +21,3 @@ {{ plot_script|indent(8) }} - diff --git a/examples/app/gapminder/templates/index.html b/examples/app/gapminder/templates/index.html index fb2a6ae2085..04abc02d425 100644 --- a/examples/app/gapminder/templates/index.html +++ b/examples/app/gapminder/templates/index.html @@ -15,8 +15,8 @@

A Reproduction of Gapminder

In Hans Rosling's iconic TED Talk he shows us that many advances have been made since the 60s, when our - notions of development were established. The engaging infographic illustrates how our - ongoing perceptions of a "first world" and a "third world" are wrong, and that the + notions of development were established. The engaging infographic illustrates how our + ongoing perceptions of a "first world" and a "third world" are wrong, and that the world has become a spectrum of developing countries.

{{ plot_div|indent(8) }} diff --git a/examples/app/movies/README.md b/examples/app/movies/README.md index 16a190e0f16..99612c783df 100644 --- a/examples/app/movies/README.md +++ b/examples/app/movies/README.md @@ -1,17 +1,17 @@ -Create an interactive query and visualization dashboard for a set of +Create an interactive query and visualization dashboard for a set of IMDB movie data. Inspired by the [Shiny Movie Explorer](http://shiny.rstudio.com/gallery/movie-explorer.html). #### Setting Up -This demo requires Bokeh sample data sets to be installed. From the +This demo requires Bokeh sample data sets to be installed. From the command line, execute: python -c "import bokeh.sampledata; bokeh.sampledata.download()" -And all the necessary data files will be downloaded to a subfolder in -your home directory. +And all the necessary data files will be downloaded to a subfolder in +your home directory. -Additionally, this demo requires the [pandas](http://pandas.pydata.org/) library +Additionally, this demo requires the [pandas](http://pandas.pydata.org/) library in order to run. To install pandas using conda, execute the command: conda install pandas @@ -23,7 +23,7 @@ To install using pip, execute the command: #### Running To view the app directly from a Bokeh server, navigate to the parent -directory [`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app), +directory [`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app), and execute the command: - bokeh serve --show movies + bokeh serve --show movies diff --git a/examples/app/movies/genres.txt b/examples/app/movies/genres.txt index f1726f9a2ac..e1d9e0de8f1 100644 --- a/examples/app/movies/genres.txt +++ b/examples/app/movies/genres.txt @@ -20,4 +20,4 @@ Short Sport Thriller War -Western \ No newline at end of file +Western diff --git a/examples/app/movies/razzies-clean.csv b/examples/app/movies/razzies-clean.csv index 79fc58cd5ee..015161ce3b0 100644 --- a/examples/app/movies/razzies-clean.csv +++ b/examples/app/movies/razzies-clean.csv @@ -33,4 +33,4 @@ tt0086987 tt0085863 tt0084132 tt0082766 -tt0080492 \ No newline at end of file +tt0080492 diff --git a/examples/app/ohlc/README.md b/examples/app/ohlc/README.md index 779568d4191..2bdba22735c 100644 --- a/examples/app/ohlc/README.md +++ b/examples/app/ohlc/README.md @@ -1,10 +1,10 @@ -Create a streaming, updating [OHLC chart](https://en.wikipedia.org/wiki/Open-high-low-close_chart) -with [MACD indicator](https://en.wikipedia.org/wiki/MACD) from simulated market data. +Create a streaming, updating [OHLC chart](https://en.wikipedia.org/wiki/Open-high-low-close_chart) +with [MACD indicator](https://en.wikipedia.org/wiki/MACD) from simulated market data. #### Running To view the app directly from a Bokeh server, navigate to the parent -directory [`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app), +directory [`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app), and execute the command: - bokeh serve --show ohlc + bokeh serve --show ohlc diff --git a/examples/app/ohlc/theme.yaml b/examples/app/ohlc/theme.yaml index bdc9f04eb0d..9ffc94b7f2d 100644 --- a/examples/app/ohlc/theme.yaml +++ b/examples/app/ohlc/theme.yaml @@ -1,8 +1,7 @@ - attrs: Figure: background_fill_color: "#eeeeee" plot_width: 1200 toolbar_location: "left" min_border_bottom: 0 - min_border_top: 0 \ No newline at end of file + min_border_top: 0 diff --git a/examples/app/simple_hdf5/README.md b/examples/app/simple_hdf5/README.md index b809a71b750..29e9a01d011 100644 --- a/examples/app/simple_hdf5/README.md +++ b/examples/app/simple_hdf5/README.md @@ -4,18 +4,18 @@ Simple interactive query and visualization for HDF5 data files. Run the create_hdf5.py to create .hdf5 data file. From the command line, execute: - python create_hdf5.py + python create_hdf5.py This demo requires the h5py library. From the command line, execute: - conda install h5py - + conda install h5py + To install using pip, execute the command: pip install h5py - + #### Running To view the app, navigate to the Bokeh_hdf5 directory and execute the command: - bokeh serve --show main.py + bokeh serve --show main.py diff --git a/examples/app/spectrogram/description.html b/examples/app/spectrogram/description.html index 414061cb862..ad0d00c5f79 100644 --- a/examples/app/spectrogram/description.html +++ b/examples/app/spectrogram/description.html @@ -39,4 +39,4 @@

A Live Audio Spectrogam

simple to connect powerful Python tools for data analytics to almost any web tool, widget, or framework, even if it is not built into Bokeh natively. -

\ No newline at end of file +

diff --git a/examples/app/surface3d/description.html b/examples/app/surface3d/description.html index 7f96ea237f2..1fc4d1ab412 100644 --- a/examples/app/surface3d/description.html +++ b/examples/app/surface3d/description.html @@ -47,4 +47,4 @@

A custom extension for simple 3d graphs

library. The 3d plot below is being continuously updated by periodic callbacks in a Bokeh server application. You can pan to rotate the figure, scroll or pinch to zoom. -

\ No newline at end of file +

diff --git a/examples/charts/README.md b/examples/charts/README.md index 93b6c118043..16cebaae8fd 100644 --- a/examples/charts/README.md +++ b/examples/charts/README.md @@ -1,7 +1,7 @@ -This directory includes examples that use the high level [`bokeh.charts`](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html) -interface. This interface can be used to easily build [histograms](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#histograms), -[bar charts](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#bar-charts), -[box plots](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#box-plots), and other common statistical +This directory includes examples that use the high level [`bokeh.charts`](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html) +interface. This interface can be used to easily build [histograms](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#histograms), +[bar charts](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#bar-charts), +[box plots](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#box-plots), and other common statistical and scientific charts. A simple, but complete runnable example of typical usage looks like: @@ -23,5 +23,4 @@ There are two subdirectories: * `notebook` examples that display inline in [Jupyter](http://jupyter.org) notebooks -Many of the examples in `notebook` also contain explanatory discussion of various different chart options. - +Many of the examples in `notebook` also contain explanatory discussion of various different chart options. diff --git a/examples/compat/README.md b/examples/compat/README.md index 178ffe00780..738b5a0f064 100644 --- a/examples/compat/README.md +++ b/examples/compat/README.md @@ -1,8 +1,8 @@ -This directory contains examples of plots that use Bokeh's [compatibility layer](http://bokeh.pydata.org/en/latest/docs/user_guide/compat.html) -which allow users to create Bokeh plots using other plotting libraries. +This directory contains examples of plots that use Bokeh's [compatibility layer](http://bokeh.pydata.org/en/latest/docs/user_guide/compat.html) +which allow users to create Bokeh plots using other plotting libraries. -**NOTE** Bokeh's compatibility currently depends on a third party library which is not 100% complete. -Bokeh is capable of rendering many—***but not all***—plots created using the libraries below. +**NOTE** Bokeh's compatibility currently depends on a third party library which is not 100% complete. +Bokeh is capable of rendering many—***but not all***—plots created using the libraries below. * `ggplot` Create Bokeh plots using the python [ggplot.py](http://ggplot.yhathq.com) port of the R [`ggplot2`](http://ggplot2.org/) library @@ -11,7 +11,3 @@ Bokeh is capable of rendering many—***but not all***—plots created u * `mpl` Create Bokeh plots from [matplotlib](http://matplotlib.org) code * `seaborn` Create Bokeh plots using the [seaborn](http://stanford.edu/~mwaskom/software/seaborn/) library for statistical visualization - - - - diff --git a/examples/embed/README.md b/examples/embed/README.md index 7a6cda12e17..8d728da122c 100644 --- a/examples/embed/README.md +++ b/examples/embed/README.md @@ -1,5 +1,5 @@ -This directory contains examples that demonstrate how to embed Bokeh plots and widgets as -DOM elements of larger documents. Typically, this is accomplished using the [`bokeh.embed`](http://bokeh.pydata.org/en/latest/docs/user_guide/embed.html) interface. +This directory contains examples that demonstrate how to embed Bokeh plots and widgets as +DOM elements of larger documents. Typically, this is accomplished using the [`bokeh.embed`](http://bokeh.pydata.org/en/latest/docs/user_guide/embed.html) interface. Specific instructions for each demo are below: @@ -82,14 +82,3 @@ or in this directory. Navigate to http://localhost:8000/widget.html - - - - - - - - - - - diff --git a/examples/embed/simple/README.md b/examples/embed/simple/README.md index feff8dba58f..bff70a346d6 100644 --- a/examples/embed/simple/README.md +++ b/examples/embed/simple/README.md @@ -1,4 +1,3 @@ - This example demonstrates embedding a standalone Bokeh document into a simple Flask application, with a basic HTML web form. diff --git a/examples/howto/README.md b/examples/howto/README.md index 9df3a88b17b..da5ec9fd652 100644 --- a/examples/howto/README.md +++ b/examples/howto/README.md @@ -1,4 +1,4 @@ -The examples in this directory show off various kinds of interactions that are easily +The examples in this directory show off various kinds of interactions that are easily possible using Bokeh, including: * linked panning/zooming diff --git a/examples/howto/interactive_bubble/gapminder_styles.css b/examples/howto/interactive_bubble/gapminder_styles.css index b6ddd1593d2..1ce988390ed 100644 --- a/examples/howto/interactive_bubble/gapminder_styles.css +++ b/examples/howto/interactive_bubble/gapminder_styles.css @@ -106,32 +106,32 @@ /* Custom hover styling */ .bk-tooltip.bk-tooltip-custom { - background-color: black !important; - opacity: 0.9; - color: white; - font-size: 0.8em; - padding: 0.5em 1.5em; + background-color: black !important; + opacity: 0.9; + color: white; + font-size: 0.8em; + padding: 0.5em 1.5em; } .bk-tooltip.bk-tooltip-custom:before { - border: none !important; + border: none !important; } .bk-tooltip.bk-tooltip-custom:after { - border: none !important; + border: none !important; } .tooltip-text { - clear: both; - float: left; + clear: both; + float: left; } .tooltip-text.country { - font-weight: bold; + font-weight: bold; } .tooltip-text.value { - font-size: 1.2em; - font-weight: bold; - color: #FFA500; + font-size: 1.2em; + font-weight: bold; + color: #FFA500; } /* @@ -142,7 +142,7 @@ .bk-plotdiv input, .bk-plotdiv label { - display: none; + display: none; } @@ -161,47 +161,47 @@ } .bk-ui-slider { - position: relative; - text-align: left; + position: relative; + text-align: left; } .bk-ui-widget { - font-family: Verdana, Arial, sans-serif; - font-size: 1.1em; + font-family: Verdana, Arial, sans-serif; + font-size: 1.1em; } .bk-ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff; - color: #222222; + border: 1px solid #aaaaaa; + background: #ffffff; + color: #222222; } .bk-ui-state-default { - border: 1px solid #7c7e71; - background: #eeeeee; - font-weight: normal; + border: 1px solid #7c7e71; + background: #eeeeee; + font-weight: normal; } .bk-ui-slider-horizontal { - height: .8em; + height: .8em; } .bk-ui-slider-handle { - position: absolute; - z-index: 2; - top: -0.6em; - margin-left: -0.5em; - width: 1.0em; - height: 1.8em; - cursor: default; - -ms-touch-action: none; - touch-action: none; - border-radius: 2px; + position: absolute; + z-index: 2; + top: -0.6em; + margin-left: -0.5em; + width: 1.0em; + height: 1.8em; + cursor: default; + -ms-touch-action: none; + touch-action: none; + border-radius: 2px; } .bk-ui-slider .bk-ui-slider-handle:focus { - outline: none; + outline: none; } .bk-slider-parent input[type="text"] { diff --git a/examples/howto/interactive_bubble/gapminder_template.jinja b/examples/howto/interactive_bubble/gapminder_template.jinja index b3b871082d1..530e2d32cb5 100644 --- a/examples/howto/interactive_bubble/gapminder_template.jinja +++ b/examples/howto/interactive_bubble/gapminder_template.jinja @@ -9,16 +9,16 @@

Bokeh - Gapminder demo

In Hans Rosling's iconic TED Talk - he showed why our ongoing perceptions of - a "first" world and a "third" world are wrong and that the world - is now a spectrum of developing countries and many advances + he showed why our ongoing perceptions of + a "first" world and a "third" world are wrong and that the world + is now a spectrum of developing countries and many advances have been made since our early notions of development from the 60s.

{{ plot_div|indent(8) }}

- @@ -30,4 +30,3 @@ {{ plot_script|indent(8) }} - diff --git a/examples/models/README.md b/examples/models/README.md index 21d2e7459a8..03c10ba3d8e 100644 --- a/examples/models/README.md +++ b/examples/models/README.md @@ -1,18 +1,18 @@ -This directory contains examples that use the lowest-level [`bokeh.models`](http://bokeh.pydata.org/en/latest/docs/user_guide/concepts.html#bokeh-models) +This directory contains examples that use the lowest-level [`bokeh.models`](http://bokeh.pydata.org/en/latest/docs/user_guide/concepts.html#bokeh-models) interface. This interface mirrors the models found in the BokehJS browser library, and provides -complete control over every aspect of constructing a Bokeh document, at the expense of increased +complete control over every aspect of constructing a Bokeh document, at the expense of increased verbosity. *Most* users will probably want to start off with the higher level [`bokeh.plotting`](http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html) -or [`bokeh.charts`](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html) interfaces, +or [`bokeh.charts`](http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html) interfaces, and only selectively use the [`bokeh.models`](http://bokeh.pydata.org/en/latest/docs/user_guide/concepts.html#bokeh-models) -interface whenever a particular need arises. +interface whenever a particular need arises. #### Examples that use the server Any examples in this directory whose filenames contain `_animate` or `_server` make use of the Bokeh server, and you must first start the Bokeh server to view them. To start the server, execute - bokeh serve - -in a separate command window or terminal. + bokeh serve + +in a separate command window or terminal. diff --git a/examples/plotting/README.md b/examples/plotting/README.md index 56718467cd5..50612ee2526 100644 --- a/examples/plotting/README.md +++ b/examples/plotting/README.md @@ -1,15 +1,15 @@ -The example in this directory all use the [`bokeh.plotting`](http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html) -interface. This interface is primarily centered around creating a reasonable default plot with -appropriate axes and tools, to which you can add different visual glyphs whose properties are +The example in this directory all use the [`bokeh.plotting`](http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html) +interface. This interface is primarily centered around creating a reasonable default plot with +appropriate axes and tools, to which you can add different visual glyphs whose properties are associated with your data. A simple, but typical complete example of this API looks like: from bokeh.plotting import figure, output_file, show - + p = figure() p.circle([1, 2, 3], [4, 5, 6], color="orange") - + output_file("foo.html") - + show(p) There are three subdirectories: @@ -18,4 +18,4 @@ There are three subdirectories: * `notebook` examples that display inline in [Jupyter](http://jupyter.org) notebooks -* `server` examples that send output to a Bokeh server, using the python client library for the server +* `server` examples that send output to a Bokeh server, using the python client library for the server diff --git a/examples/plotting/notebook/README.md b/examples/plotting/notebook/README.md index 1c1544214c9..7b4e0dee946 100644 --- a/examples/plotting/notebook/README.md +++ b/examples/plotting/notebook/README.md @@ -1,6 +1,5 @@ - The examples in this directory illustrate the use of Bokeh inside the Jupyter notebook. To view the examples here, first execute 'jupyter notebook' in this directory. A web browser should automatically open up to the Jupyter Dashboard -at localhost:8888 (or you may navigate there manually). Click on any of the +at localhost:8888 (or you may navigate there manually). Click on any of the notebooks listed to open and explore. diff --git a/examples/plotting/server/README.md b/examples/plotting/server/README.md index 7116cbe14bd..8265e8a0d86 100644 --- a/examples/plotting/server/README.md +++ b/examples/plotting/server/README.md @@ -1,4 +1,3 @@ - All the examples in this directory illustrate how to use the Bokeh server from simple python scripts. This can also be useful when working with Jupyter notebooks. @@ -12,7 +11,3 @@ Then execute any of the scripts in this directory, e.g. python animated.py The document should automatically open in a new tab in your browser. - - - - diff --git a/requirements.txt b/requirements.txt index 99b75e0a0d4..fa23ba0f839 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ # This will first install the library located at the file path and then # move on to its abstract dependencies (listed in install_requires), -# combining them with its --index option (the PyPi location) and +# combining them with its --index option (the PyPi location) and # turning them into concrete dependencies and installing them. # Reference: https://caremad.io/blog/setup-vs-requirement/ --index-url https://pypi.python.org/simple/ diff --git a/scripts/.gitignore b/scripts/.gitignore index ab3b8dc6391..04ee9ea15c1 100644 --- a/scripts/.gitignore +++ b/scripts/.gitignore @@ -1 +1 @@ -*testlog.txt \ No newline at end of file +*testlog.txt diff --git a/sphinx/README.txt b/sphinx/README.txt index 56106aae609..8f73c88d902 100644 --- a/sphinx/README.txt +++ b/sphinx/README.txt @@ -1,4 +1,3 @@ - Requirements ============ @@ -17,7 +16,7 @@ Manual actions for new releases The link to the sitemap should be added to the Google Search Console. -On a major point release (e.g. 0.9 -> 0.10) please update `html_context['ALL_VERSIONS']` +On a major point release (e.g. 0.9 -> 0.10) please update `html_context['ALL_VERSIONS']` in ``conf.py`` which is the list of versions that will appear in the dropdown version selector in the docs. @@ -55,9 +54,7 @@ Additionally, you have the "latest" task to update the `/latest` link to the spe $ fab latest:0.9.3 # link /latest to 0.9.3 version -Notes: +Notes: - requires having SSH keys for "bokeh" user. - you may want to specify the docs_version by using environment variable `BOKEH_DOCS_VERSION` (http://bokeh.pydata.org/en/latest/docs/dev_guide/setup.html#bokeh-docs-version) - - diff --git a/sphinx/draw.io/README.md b/sphinx/draw.io/README.md index 63d7dafd040..3bd1cf74544 100644 --- a/sphinx/draw.io/README.md +++ b/sphinx/draw.io/README.md @@ -1,3 +1,3 @@ The XML files in this directory are the source files for the corresponding SVG files in the ``source/_images`` directory. They were created with, and -can be edited using the free draw.io online service. \ No newline at end of file +can be edited using the free draw.io online service. diff --git a/sphinx/source/bokeh_theme/static/js/main.js b/sphinx/source/bokeh_theme/static/js/main.js index 03d600b5279..c4db0556217 100644 --- a/sphinx/source/bokeh_theme/static/js/main.js +++ b/sphinx/source/bokeh_theme/static/js/main.js @@ -90,4 +90,3 @@ $(document).ready(function() { }); }); - diff --git a/sphinx/source/docs/includes/colors.txt b/sphinx/source/docs/includes/colors.txt index 5987d88466c..f6b34f374b0 100644 --- a/sphinx/source/docs/includes/colors.txt +++ b/sphinx/source/docs/includes/colors.txt @@ -1,4 +1,3 @@ - - any of the `147 named CSS colors`_, e.g ``'green'``, ``'indigo'`` - an RGB(A) hex value, e.g., ``'#FF0000'``, ``'#44444444'`` - a 3-tuple of integers *(r,g,b)* between 0 and 255 diff --git a/sphinx/source/docs/includes/line_props.txt b/sphinx/source/docs/includes/line_props.txt index cb600bbaf49..985c2f08213 100644 --- a/sphinx/source/docs/includes/line_props.txt +++ b/sphinx/source/docs/includes/line_props.txt @@ -1,4 +1,3 @@ - ``line_color`` color to use to stroke lines with diff --git a/sphinx/source/docs/includes/text_props.txt b/sphinx/source/docs/includes/text_props.txt index c2fca0bbae4..9a303a8032a 100644 --- a/sphinx/source/docs/includes/text_props.txt +++ b/sphinx/source/docs/includes/text_props.txt @@ -1,4 +1,3 @@ - ``text_font`` font name, e.g., ``'times'``, ``'helvetica'`` diff --git a/tests/test_code_quality.py b/tests/test_code_quality.py index e27ead3389d..e5055640ff4 100644 --- a/tests/test_code_quality.py +++ b/tests/test_code_quality.py @@ -1,7 +1,9 @@ # This is based on sympy's sympy/utilities/tests/test_code_quality.py +import io +import subprocess from os import walk, sep, pardir -from os.path import split, join, isabs, abspath, relpath, exists, isfile, basename +from os.path import split, join, isabs, abspath, relpath, exists, isfile, basename, splitext from glob import glob import pytest @@ -30,6 +32,13 @@ def tab_in_leading(s): check = s[:n] + smore[:len(smore) - len(smore.lstrip())] return check.expandtabs() != check +def use_tab_rule(fname): + return not (basename(fname) == 'Makefile' or splitext(fname)[1] == '.bat') + +exclude_exts = (".png", ".jpg", ".pxm", ".ico", ".ics", ".gz", ".gif", ".enc", ".svg", ".xml") + +exclude_dirs = ("bokehjs/src/vendor", "sphinx/draw.io") + def collect_errors(): errors = [] @@ -37,7 +46,6 @@ def test_this_file(fname, test_file): line = None for idx, line in enumerate(test_file): - line = line.decode('utf-8') line_no = idx + 1 if idx == 0 and len(line.strip()) == 0: @@ -46,7 +54,7 @@ def test_this_file(fname, test_file): errors.append((message_space, fname, line_no)) if line.endswith("\r\n") or line.endswith("\r"): errors.append((message_carriage, fname, line_no)) - if tab_in_leading(line): + if use_tab_rule(fname) and tab_in_leading(line): errors.append((message_tabs, fname, line_no)) #if len(line) > MAX_LINE_LENGTH: # errors.append((message_too_long, fname, line_no)) @@ -57,64 +65,29 @@ def test_this_file(fname, test_file): if not line.endswith('\n'): errors.append((message_eof, fname, line_no)) - def test(fname): - with open(fname, "Urb") as test_file: - test_this_file(fname, test_file) - - def canonicalize(path): - return path.replace('/', sep) - - def check_tree(base_path, patterns, dir_exclusions=None, file_exclusions=None): - dir_exclusions = dir_exclusions or [] - file_exclusions = file_exclusions or [] - base_path = join(TOP_PATH, canonicalize(base_path)) - dir_exclusions = set([ join(base_path, canonicalize(path)) for path in dir_exclusions ]) + paths = subprocess.check_output(["git", "ls-files"]).decode('utf-8').split("\n") - for root, dirs, _ in walk(base_path): - if root in dir_exclusions: - del dirs[:] - continue + for path in paths: + if not path: + continue - for pattern in patterns: - files = glob(join(root, pattern)) - check_files(files, file_exclusions) + if path.endswith(exclude_exts): + continue - def check_files(files, file_exclusions=None): - file_exclusions = file_exclusions or [] - for fname in files: - if not isabs(fname): - fname = join(TOP_PATH, fname) + if path.startswith(exclude_dirs): + continue - if not exists(fname) or not isfile(fname): - continue + with io.open(path, 'r', encoding='utf-8') as file: + test_this_file(path, file) - if basename(fname) in file_exclusions: - continue - - test(fname) - - check_files(["setup.py", "_setup_support.py"]) - check_tree('bin', ['*']) - check_tree('bokeh', ['*.py', '*.html', '*.js'], ["server/static"]) - check_tree('bokehjs', ['*.coffee', '*.js', '*.ts', '*.less', '*.css', '*.json'], ['build', 'node_modules', 'src/vendor', 'typings']) - check_tree('conda.recipe', ['*.py', '*.sh', '*.yaml']) - check_tree('examples', ['*.py', '*.ipynb']) - check_tree('scripts', ['*.py', '*.sh']) - check_tree('sphinx', ['*.rst', '*.py'], ['_build', 'source/docs/gallery']) - check_tree('tests', ['*.py', '*.js']) - - return errors + return [ msg % (relpath(fname, TOP_PATH), line_no) for (msg, fname, line_no) in errors ] def bad_files(): return " ".join(sorted(set([ file for (_, file, _) in collect_errors() ]))) @pytest.mark.quality def test_files(): - def format_message(msg, fname, line_no): - return msg % (relpath(fname, TOP_PATH), line_no) - - errors = [ format_message(*args) for args in collect_errors() ] - + errors = collect_errors() assert len(errors) == 0, "Code quality issues:\n%s" % "\n".join(errors) if __name__ == "__main__": diff --git a/versioneer.py b/versioneer.py index f537a1c66ae..3779509675a 100644 --- a/versioneer.py +++ b/versioneer.py @@ -1,4 +1,3 @@ - # Version: 0.17 """The Versioneer - like a rocketeer, but for versions.