Commit Graph

710 Commits

Author SHA1 Message Date
47c676a068 Adds an OrderFields transformation factory, update examples. 2017-12-02 14:18:24 +01:00
9e0834b061 Check partially configured transformations that are function based (aka transformation factories) on execution context setup.
wip: make sure all api is exported, raise an error when a function based transformation factory is (incorrectly) used as a transformation.
2017-12-01 07:43:14 +01:00
db54ff41ef Fix PrettyPrinter, output verbosity is now slightly more discreete. 2017-12-01 07:42:23 +01:00
d8c0dfe11a Inheritance of bags and better jupyter output for pretty printer. 2017-11-28 21:58:01 +01:00
c7ff06a742 Documentation cosmetics. 2017-11-28 21:57:48 +01:00
686d1c81b3 Simple "examples" command that just show examples for now. 2017-11-28 21:57:08 +01:00
5e0b6567cd Rewritting Bags from scratch using a namedtuple approach, along with other (less major) updates.
New bag implementation improves a lot how bonobo works, even if this is
highly backward incompatible (sorry, that's needed, and better sooner
than later).

* New implementation uses the same approach as python's namedtuple,
  by dynamically creating the python type's code. This has drawbacks, as
  it feels like not the right way, but also a lot of benefits that
  cannot be achieved using a regular approach, especially the
  constructor parameter order, hardcoded.
* Memory usage is now much more efficient. The "keys" memory space will
  be used only once per "io type", being spent in the underlying type
  definition instead of in the actual instances.
* Transformations now needs to use tuples as output, which will be bound
  to its "output type". The output type can be infered from the tuple
  length, or explicitely set by the user using either
  `context.set_output_type(...)` or `context.set_output_fields(...)` (to
  build a bag type from a list of field names).

Jupyter/Graphviz integration is more tight, allowing to easily display
graphs in a notebook, or displaying the live transformation status in an
html table instead of a simple <div>.

For now, context processors were hacked to stay working as before but
the current API is not satisfactory, and should be replaced. This new
big change being unreasonable without some time to work on it properly,
it is postponed for next versions (0.7, 0.8, ...). Maybe the best idea
is to have some kind of "local services", that would use the same
dependency injection mechanism as the execution-wide services.

Services are now passed by keywoerd arguments only, to avoid confusion
with data-arguments.
2017-11-27 00:04:51 +01:00
52ea29afcb Merge remote-tracking branch 'origin/dev_rollback_kwargs' into develop 2017-11-17 17:13:15 +01:00
5bbd70a9ba Merge pull request #223 from winsmith/develop
Fix various Typos in Documentation
2017-11-14 08:34:51 +01:00
9b0a51e647 Fix another typo in run 2017-11-13 16:38:53 +01:00
72ae354810 Fix two typos in the ContextProcessor documentation 2017-11-13 16:31:00 +01:00
c87775f090 Core: refactoring contexts with more logical responsibilities, stopping to rely on kargs ordering for compat with python3.5 2017-11-12 16:36:11 +01:00
7afbf336e6 Merge pull request #220 from hartym/develop
Less strict CSV processing, to allow dirty input.
2017-11-12 11:19:18 +01:00
739a64d8f4 Simplification of node execution context, handle_result is now in step() as it is the only logical place where this will actually be called. 2017-11-12 11:16:52 +01:00
0b3694142b Less strict CSV processing, to allow dirty input. 2017-11-12 10:36:07 +01:00
6fc5825fd5 Merge pull request #219 from hartym/develop
Update stdlib, new plugin architecture applied to existing plugins.
2017-11-12 10:13:54 +01:00
c2f17296f6 [stdlib] Adds Update(...) and FixedWindow(...) the the standard nodes provided with bonobo. 2017-11-12 10:06:15 +01:00
a97b1c5d2e Adds a benchmarks directory with small scripts to test performances of things. 2017-11-12 09:08:32 +01:00
d1481fbfe8 Moves jupyter extension to both bonobo.contrib.jupyter (for the jupyter widget) and to bonobo.plugins (for the executor-side plugin). 2017-11-12 09:08:05 +01:00
4bea3f7dad Fix examples with new module paths. 2017-11-12 06:24:29 +01:00
f6093e308d IOFormats: if no kwargs, then try with one positional argument. 2017-11-12 06:23:19 +01:00
96fd4533e1 Adds a __getattr__ dunder to ValueHolder to enable getting attributes, and especially method calls, on contained objects. 2017-11-12 06:22:28 +01:00
780199551c Moves ODS extension to contrib module. 2017-11-12 06:21:28 +01:00
a4d49a0f32 Moves google extension to contrib module. 2017-11-12 06:21:05 +01:00
40be9c71da Moves django extension to contrib module. 2017-11-12 06:20:46 +01:00
fcd3d80de2 Merge branch 'develop' of github.com:python-bonobo/bonobo into develop 2017-11-07 08:01:21 +01:00
1d2916480a Adds argument parser support to django extension. 2017-11-07 08:00:59 +01:00
1a53c89efc Trying to understand conda... 2017-11-05 20:06:34 +01:00
de449304fb Trying to understand conda... 2017-11-05 20:06:09 +01:00
afbc2efce0 Trying to understand conda... 2017-11-05 20:04:36 +01:00
8f2edaf2fb Merge remote-tracking branch 'upstream/develop' into develop 2017-11-05 19:51:11 +01:00
2b712f5c4e Update conda conf so readthedocs can maybe build. 2017-11-05 19:50:38 +01:00
29d62c3438 Merge pull request #212 from hartym/develop
Refactoring towards __main__ usage and more pythonic way to hook into job files.
2017-11-05 19:42:50 +01:00
8f3c4252b4 Working on the new version of the tutorial. Only Step1 implemented. 2017-11-05 19:41:27 +01:00
eb393331cd Adds a "bare" template, containing the very minimum you want to have in 90% of cases. 2017-11-05 14:59:25 +01:00
56c26ea26c Fix default logging level, adds options to default template. 2017-11-05 14:54:01 +01:00
674f9348e7 Skip failing order test for python 3.5 (temporary). 2017-11-05 14:45:30 +01:00
a901731fff Switch to stable mondrian. 2017-11-04 15:17:51 +01:00
8439a535fe Moves timer to statistics utilities. 2017-11-04 15:01:04 +01:00
0b969d31e0 Adds basic test for convert command. 2017-11-04 14:55:08 +01:00
25e919ab96 [tests] adds node context lifecycle test.( 2017-11-04 13:36:54 +01:00
83fc1743fc Small changes in events, and associated tests. 2017-11-04 13:20:53 +01:00
28884231b3 [core] Moves bonobo.execution context related package to new bonobo.execution.contexts package, also moves bonobo.strategies to new bonobo.execution.strategies package, so everything related to execution is now contained under the bonobo.execution package. 2017-11-04 13:13:47 +01:00
2c9729c4ca Remove the sleep() in tick() that causes a minimum execution time of 2*PERIOD, more explicit status display and a small test case for console plugin. 2017-11-04 13:01:43 +01:00
0b8168f7da [tests] Fix path usage for python 3.5 2017-11-04 12:29:46 +01:00
017bb4a9a6 Adds a test for default file init command. 2017-11-04 12:24:30 +01:00
1108b319db Adds 3.7-dev target to travis runner. 2017-11-04 12:15:18 +01:00
5f300225a8 Update requirements with first whistle stable. 2017-11-04 12:10:28 +01:00
6bd1130e34 [core] Refactoring to use an event dispatcher in the main thread.
Plugins now run in the main thread, instead of their own threads, and
the API changed to use an event dispatcher approach instead of a static
class interface.
2017-11-04 12:05:04 +01:00
d988d30474 Update to mondrian 0.4a0. 2017-11-02 08:25:30 +01:00