README.md in quandl-0.2.27 vs README.md in quandl-0.3.0
- old
+ new
@@ -1,19 +1,36 @@
-# Getting Started
+[![Code Climate](https://codeclimate.com/github/quandl/quandl_command.png)](https://codeclimate.com/github/quandl/quandl_command)
+# Quandl Toolbelt
+
+** The Quandl Toolbelt is currently in ALPHA TESTING. You are nevertheless welcome to try it. **
+
The Quandl toolbelt enables you to create and maintain time series data on Quandl.com. The Quandl toolbelt is extremly simple to understand and use. (We use it to maintain the 8 million datasets currently on the site.)
## Installation
-### Mac or Linux
+### Mac
- curl -s http://s3.amazonaws.com/quandl-command/install.sh | bash
+**[quandl-toolbelt.pkg](http://s3.amazonaws.com/quandl-command/quandl-toolbelt.pkg)**
+
### Windows
-[Executable Installer](http://s3.amazonaws.com/quandl-command/Quandl+Setup.exe)
+**[Quandl Setup.exe]( http://s3.amazonaws.com/quandl-command/Quandl+Setup.exe)**
+
+### Gemfile
+
+In your Gemfile, add:
+
+```ruby
+gem "quandl"
+```
+
+
+
+
## Login
Once the toolbelt is installed, the next step is to login to Quandl:
$ quandl login
@@ -21,20 +38,15 @@
Token: ***************
You have successfully authenticated!
username: tammer1
email: tammer@quandl.com
-If you have a Quandl password, you can do this:
+If you have a Quandl password, you can also use `quandl login --method password`. (You might not have a Quandl password if you log in using Github, Google, Linkedin or Twitter)
- $ quandl login --method password
- quandl login
- Username or Email: Tammer1
- Password: ******
- You've successfully authorized Tammer1!
-(You might not have a Quandl password if you log in using Github, Google, Linkedin or Twitter)
+
## Create a Dataset
Create [data.csv](https://raw2.github.com/quandl/toolbelt_help/master/data.csv) that looks something like this:
code: AAA
@@ -50,10 +62,13 @@
<!-- You just created a dataset on Quandl.com: [www.quandl.com/<your username>/AAA](#) -->
You just created a dataset on Quandl.com: `www.quandl.com/<your-username>/AAA`
+
+
+
## Update a Dataset
The new dataset will now exist on Quandl forever. You can send new data and/or update metadata whenever you want. For example, create [data_update.csv](https://raw2.github.com/quandl/toolbelt_help/master/data_udpate.csv):
code: AAA
@@ -72,10 +87,13 @@
<!--
## An Alternate Update Method
You might also want to edit it more at [www.quandl.com/edit/<your user name>/FOO](#)
-->
+
+
+
## Delete a Dataset
You can delete the dataset:
$ quandl delete AAA
@@ -84,10 +102,11 @@
y
OK 1241ms AAA
+
## Scrapers and Other Data Producing Programs
As long as your program outputs Quandl flavored CSV as above, it is ready for use with the Quandl toolbelt. Consider this scraper, written in both Ruby ([scraper1.rb](https://raw2.github.com/quandl/toolbelt_help/master/scraper1.rb)) and Python ([scraper1.py](https://raw2.github.com/quandl/toolbelt_help/master/scraper1.py)):
# This is script that pulls the history of Facebook (FB) stock price from Google.
@@ -130,14 +149,20 @@
The scraper will be run daily at 17:30 (in your time zone). Every day when it runs, if the script's output is not valid OR the script reports something to STDERR, then you receive an alert email.
You now have a dataset on Quandl that refreshes daily!
-->
+
+
+
## Scheduling Your Scripts
This feature is not ready for use yet. When it is ready you will be able to send any script to Quandl. Quandl will then run the script on a schedule and send the output to `quandl upload` for you. You can (optionally) receive emails when the script succeeds or fails.
+
+
+
## Many Datasets via One Input Stream
You can send multiple datasets with a single call to `quandl upload`. [Scraper2.rb](https://raw2.github.com/quandl/toolbelt_help/master/scraper2.rb) ([Scraper2.py](https://raw2.github.com/quandl/toolbelt_help/master/scraper2.py)) produces the most recent closing data for two stocks:
code: AAPL
@@ -154,14 +179,18 @@
Creates or updates both `quandl.com/<your-username>/AAPL` and `quandl.com/<your-username>/MSFT`
You can send an infinite number of datasets via one call to `quandl upload`.
+
+
+
## Quandl Flavored CSV
Quandl "flavored" CSV is just just plain vanilla CSV prepended with metadata in [YAML](http://en.wikipedia.org/wiki/YAML) format. Metadata is seperated from data by a single line containing one or more dashes "-".
+
### Quick Reference
Here is the entire specification by example for quick reference:
# This is a comment. Also note blank lines are allowed; they are simply ignored
@@ -182,10 +211,11 @@
----
Date,Price,Volume # if omitted on new dataset, default headings are created
2012-01-01,32.23 # the csv data. date can be almost any format you want
+
### Metadata Specifications
|Field|Description|Required?|
|-----|------------|--------|
|code|a unique id for the dataset; uppercase letters, numbers and "_" are the only characters allowed.|Required|
@@ -194,15 +224,17 @@
|reference_url|An external URL where the data can be validated. Most datasets on Quandl cite an external source to maximize credability|Optional|
|frequency|daily, weekly, monthly,quarterly or annual|optional; inferred if omitted|
|private|true or false; default is false|private data is visible to only you|
+
+
## Example Scrapers
### Shibor
-[www.shibor.org](http://www.shibor.org) publishes Shibor rates which Quandl republishes at [www.quandl.com/TAMMER1/SHIBOR](http://www.quandl.com/USER_YY/SHIBOR)
+[www.shibor.org](http://www.shibor.org) publishes Shibor rates which Quandl republishes at [www.quandl.com/TAMMER1/SHIBOR](http://www.quandl.com/TAMMER1/SHIBOR)
This dataset is maintained via [this ruby script](https://github.com/tammer/scrapers/blob/master/shibor.rb) that fetches the 10 most recent days of data from Shibor.org.
You can run the script to print 10 days of Shibor rates to the screen:
@@ -216,42 +248,51 @@
The backfill for this dataset was manually downloaded and converted into a simple CSV file which we then pushed to the site:
quandl upload shibor_backfill.csv
+
### Hsieh Trend Following Factors
-Professor David Hsieh maintains hedge fund trend following risk factors at [faculty.fuqua.duke.edu/~dah7/HFRFData.htm](https://faculty.fuqua.duke.edu/~dah7/HFRFData.htm). They are available on Quandl at [quandl.com/TAMMER1/TFRF](http://www.quandl.com/USER_YY/TFRF).
+Professor David Hsieh maintains hedge fund trend following risk factors at [faculty.fuqua.duke.edu/~dah7/HFRFData.htm](https://faculty.fuqua.duke.edu/~dah7/HFRFData.htm). They are available on Quandl at [quandl.com/TAMMER1/TFRF](http://www.quandl.com/TAMMER1/TFRF).
The data is maintained by running [hsieh.rb](https://github.com/tammer/scrapers/blob/master/hsieh.rb) every day. To see the output of the script:
curl "https://raw.github.com/tammer/scrapers/master/hsieh.rb" | ruby
To keep the data up to date, we scheduled a daily run of:
curl "https://raw.github.com/tammer/scrapers/master/hsieh.rb" | ruby | quandl upload
+
### Copyright Data
Some data publishers provide data on the condition that you not republish it. When scraping such sites, be sure to set the private flag to be true so that only you can see the data, at which point you should be in compliance, since you are simply storing a single copy on a private cloud based repository; (no different from storing a copy on Google Docs or Dropbox).
For example, if you happen to need the MSCI Far East Index on Quandl, you can scrape it with a program like [this](https://github.com/tammer/scrapers/blob/master/msci.rb). You then pipe to Quandl as usual, ensuring the private flag is true:
curl "https://raw.github.com/tammer/scrapers/master/msci.rb" | ruby | quandl upload
Now you have the data you need on Quandl while remaining compliant with MSCI's terms of use.
+
### Additional Examples
|Dataset|Scraper|
|-------|----|
| [Litecoin vs USD](http://quandl.com/TAMMER1/LTCUSD)| [litecoin.rb](https://github.com/tammer/scrapers/blob/master/litecoin.rb)|
+
+
+
## Full Reference
Other features of the Toolbelt including `quandl download`, `quandl info`, `quandl list` and other minor features are documented in the [Quandl Toolbelt Reference](#) page.
+
+
+
## FAQ
### How can I use ":" in the name or description field?
You should put the text in double quotes:
@@ -268,27 +309,29 @@
puts ' description: "I love colons : : :" '
From Python:
- print "description: \"I love colons : : :\""
+ print "description: \"I love colons : : :\""
### Are the Datasets Publicly Accessible?
You decide. By default it is public. use:
private: true
To make the dataset visible only to you.
+
### Can you handle high frequency (intra-day) data?
No.
-### How to I including Blank or Nils
+### How do I including Blank or Nils
+
This is how you include nil datums:
Code: NIL
Name: Example Data with Missing Points
Description: This dataset is for example only.
@@ -299,18 +342,28 @@
2003, ,,9
2002, 1, 2, N.a.
This dataset can be seen on Quandl right [here](http://www.quandl.com/TAMMER1/NIL)
+
### Your SHIBOR script seems to download the past 10 days' worth of data...
...Assuming that happens daily, then you'll have overlapping data (e.g., the most recent day's data is new, but the prior nine days worth of data should be in the database already). How does Quandl deal with that? What if the underlying data changes - will Quandl update the previous nine days of data? Will it record what the data used to be based on the 'original' dataset?
Answer: If you upload data for dates where data already exists, the new data over-writes the old data. Thus if you send redundant data, it is harmless. Shibor.rb is written this way for two reason: 1) helpful in case the publisher changes something a few days later. 2) helpful if we miss run for a couple of days for some reason.
-### A given municipal bond doesn't trade every day. So, if I set up a separate 'id' for each bond, then each day there will be some bonds that get pricing updates and others that don't. Are there any issues with this, or can Quandl handle this kind of 'sparse' data?
-Sparse data is not a problem.
+### A given municipal bond doesn't trade every day...
+
+So, if I set up a separate 'id' for each bond, then each day there will be some bonds that get pricing updates and others that don't. Are there any issues with this, or can Quandl handle this kind of 'sparse' data?
+
+Answer: Sparse data is not a problem.
+
+
+### Why can't I find my dataset using search on Quandl.
+
+If it is private, it will not appear in search ever. If it is public, it can take up to 1 hour before our index is updated with your new dataset.
+
### My Question is not answered!
You best <a href='mailto:connect@quandl.com'>email</a> me then. Put "Toolbelt" in the subject and you go right to the top of my inbox.