njr0 / fish

The Fluidinfo shell; a command line for Fluidinfo
http://fluiddb.fluidinfo.com/about/fish/njr/index.html
MIT License
5 stars 2 forks source link

IMPORTANT CHANGE IN VERSION 2.00: SEE TAG CONVENTIONS

FISH PYTHON LIBRARY

Fish is a primarily a command line tool for providing access to the Fluidinfo data store (from Fluidinfo (http://fluidinfo.com/.) There is lots of coverage of the library (and its evolution) at http://blog.abouttag.com/.

FISH COMMAND LINE ACCESS

Fish can also be used for command-line access to FluidDB. See 'USING THE COMMAND LINE', below.

DEPENDENCIES

If you're running python 2.6 or higher, Fish should just run. With earlier version of python, you need to get access to simplejson and httplib2. You can get simplejson from http://pypi.python.org/pypi/simplejson/ and httplib2 from http://code.google.com/p/httplib2/.

CREDENTIALS

For many operations, you also need an account on Fluidinfo, and credentials (a username and password). You can get these from http://fluidinfo.com/accounts/new The library allows you to give it your credentials in various different ways, but life is simplest if you stick them in a 2-line file (preferably with restricted read access) in the format

username password

On Unix-like operating systems (including Mac OS X), the default location for this is ~/.fluidDBcredentials.

On windows, the location of the credentials file is specified by the environment variable FDB_CREDENTIALS_FILE; if that is not set, then Fish looks for c:\fish\credentials.txt.

You can also optionally add a line, after password, saying either

unix-style-paths true or unix-style-paths false

TAG CONVENTIONS

As from version 2.00, Fish uses absolute Fluidinfo-style paths all the time (i.e. you always specify the namespace and don't use a leading slash). You can explicitly mandate this also by adding the line

unix-style-paths false

in your credentials file (see above).

If you instead set

unix-style-paths true

on the third line of the credentials file, Fish uses unix-style paths, meaning that paths are assumed to be relative to the user's namespace unless they are introduced with a leading slash. Also, the about tag (fluiddb/about) may be referred to as /about. This affects input and output.

If you want to overrride this behaviour for a given command, you can use the -U flag to specify that the command will use unix-style paths, or -F to indicate that it will use fluidinfo-style paths.

TESTS

The library includes a set of tests. If you have valid credentials, and everything is OK, these should run successfully if you just execute the file fish.py. For example, at the time of writing this README file (version 2.03 of the Fish), I get this:

$ fish test ......................

Ran 22 tests in 46.311s

OK

USING THE LIBRARY

Four ways of exploring the library are:

  1. look at the tests (the ones in the class TestFluidDB)
  2. look at the blog (http://abouttag.blogspot.com)
  3. read the function documentation, which is...existent.
  4. look at and run example.py, which should print DADGAD and 10.

USING THE COMMAND LINE

Commands can be run by giving arguments to Fish. For a list of commands, use

fish help

An example command is

fish show -a DADGAD rating /fluiddb/about

DELICIOUS

Also distributed with Fish itself is code for accessing delicious.com (http://del.icio.us/, as was), and for migrating bookmarks and other data to Fluidinfo. This also includes functionality for creating web homepages from delicious based on a home tag. See the README-DELICIOUS file for details on this functionality.