Package: bigtempo
Implementation:Python 2.7Status:Alpha (contract may change)Download:http://pypi.python.org/pypi/bigtempo/Source:http://github.com/rhlobo/bigtempo/Keywords:bigdata, time series, temporal processment, temporal analysis, data processment, data analysis, scalable, distributed, data exploration, pythonThis is a Python package created to help you build complex hierarchies of processments, each refered as a datasource.
The package was originally conceived to handle temporal data and it is typically used as a colleague ofpandas- dealing with time series and dataframes - but it is flexible and can easily be extended to support other data models.
It handles dependency resolution, provides a tagging system that enables querying operations over datasource sets, and much more.There are other software packages that focus on lower level aspects of data processing, likepandas,numpy,sympy,theano.
This is not a framework to replace these. Instead, it aims to support many of these tools, helping you to stitch many processments together.
It provides a decoupled programming model that was built with scalability support in its heart and it takes care of a lot of the workflow management so that you can focus on the data itself.Bigtempo aims to provide support an wide range of applications - including artificial intelligence systems - working in data pull fashion.
Its philosophy is to lazyload things as possible: analysis are retrieved from cache if available, processed otherwise.
Adatasourceserves data through processors that can be used by otherdatasources(or by you directly) and processors are made to be executed in a distributed fashion, if that is desired.Keep in mind that the package - although performatic - is in Alpha Stage and, as so,
most of its caching and distributed processing capabilities are still in the owen.Getting startedYou canget started reading an ipython notebook, and for a better understandment of what can be done, you shall take a peek in thepandas introduction.Example projectIf you need more examples, or just feel like checking out how bigtempo can be used in a project, please refer tostockExperiments.InstallationTo install, simply:$pipinstallbigtempoOr, if you absolutely must:$easy_installbigtempoDependenciesBoth the installation methods above should take care of dependencies on its own, automatically.Thepandaslibrary is the only direct dependency the package has in order to be executed. You should visit its page to find out what it depends on. For best results, we recommend installing optional packages as well.If you want to run the package tests, or enjoy its testing facilities, you’ll need:mockito>= 0.5.1In order to run the tests using the command contained in thebindirectory, also install:nose >= 1.3.0coverage >= 3.6pep8 >= 1.4.5Installing from sourceTo install bigtempo from source you need:Clone the git repository:$gitclonehttps://github.com/rhlobo/bigtempo.gitGet into the project directory:$cdbigtempoInstall dependencies (if you are not using virtualenv, it may need super user privileges):$pipinstall-rrequirements.txtInstall it:$pythonsetup.pyinstallAlternatively, you can usepipif you want all the dependencies pulled in automatically (the optional-eoption is for installing it indevelopment mode):$pipinstall-e.Next versions?Distributed processingBuild in process poolsIntegration withceleryIntegration with Apache ZooKeeper and ZeroMQCachingSmart temporal data cachingCompatibilityPython 2.7+Bug trackerIf you have any suggestions, bug reports or annoyances please report them to ourissue_tracker.ContributeOn thetracker, check for open issues or open a new one to start a discussion around an idea or bug.Fork therepositoryon GitHub to start making your changes.Write a test which shows that the bug was fixed or that the feature works as expected.Send a pull request and wait until it gets merged and published. Make sure to add yourself toAUTHORS.