Collectors was initially developed to monitor SimPy simulation models but it can also be used to monitor any Python objects and collect data from them.
Our main development goals were:
- Ease of use (simple API, little typing)
- Memory and CPU efficiency
- No impact on simulation speed if you don’t use it.
- As little impact as possible if you use it.
- Flexibility and easy extensibility
- Separation of data collection and data analysis
Simple usage example
>>> class Spam(object): ... a = 1 ... b = 2 ... >>> spam = Spam() >>> >>> # Create and configure the collector >>> col = Collector( ... ('a', lambda: spam.a), ... ('b', lambda: self.b) ... ) >>> >>> # Collect all monitored variables (spam.a and spam.b) >>> col() >>> spam.a, spam.b = 3, 4 >>> col() >>> >>> # Get the collector’s data >>> col ([1, 3], [2, 4]) >>> # You can also access it's elements by their name ... >>> col.a [1, 3] >>> # ... or by their index >>> col [2, 4]
Collectors has only been tested with Python 2.6 but older versions should also work. Python 3.0 might also work; if not, we’ll put it on our schedule.
The easiest way to install Collectors is via PIP or distribute:
pip install Collectors
If you downloaded the archive, execute:
python setup.py install
And finally, if you checked out the repository and always want to use the newest version, type:
pip install -e path/to/Collectors
pip install -e https+hg://bitbucket.org/scherfke/collectors/
The Documentation can be found in the docs/ directory or online.