David Wilson
42732c90b6
Add sudo factory to docs.
8 years ago
David Wilson
bad745515c
Measure new modules too.
8 years ago
David Wilson
7c8c406cfa
Ensure sudo is started with a new controlling TTY.
8 years ago
David Wilson
0ec8b6c206
Extraneous junk
8 years ago
David Wilson
7cbb74f9ef
Handle password incorrect in econtext.sudo.
8 years ago
David Wilson
358e753010
Don't keep buffer of all previously received data.
8 years ago
David Wilson
57a7395b8a
Treat EIO like an empty read.
8 years ago
David Wilson
99a2ccf68c
First draft of econtext/sudo.py.
8 years ago
David Wilson
9733668b50
Replace OK indicator with EC0/EC1.
8 years ago
David Wilson
82257c2c37
Fix messed up font on desktop.
8 years ago
David Wilson
961a9549bd
Better method to ensure __module__ is set consistently.
...
PyFunction_New() and type_new() both simply lookup the __name__ of the
global scope in which a function or class is defined in order to
determine its __module__. So we can do a better job of ensuring
__module__ is set correctly by simply overriding __name__ before
defining any functions or classes.
Works identically in Python 3.
8 years ago
David Wilson
9cd9f1fec2
Update module forwarder blurb.
8 years ago
David Wilson
571cc00dc3
Import incomplete econtext.tcp implementation.
8 years ago
David Wilson
fe171cd8cf
Parameterize create_child() in order to support non-pipe children.
8 years ago
David Wilson
ae7fcb75e4
Fix run_with_broker test.
8 years ago
David Wilson
959839cbbf
Fix log message.
8 years ago
David Wilson
4de557d304
Somre more basic tests.
8 years ago
David Wilson
b964cc6f18
Import preamble_size.py.
8 years ago
David Wilson
5a4fc577cd
disable_site_packages() helper for ssh_test.
8 years ago
David Wilson
ba85638c78
Module __file__ fixes.
8 years ago
David Wilson
2e675c47a1
Beginnings of Django integration test project/app.
8 years ago
David Wilson
3535e45245
Broken SSH unit test.
8 years ago
David Wilson
341a90e173
Allow setting ssh_path in econtext.ssh.connect().
8 years ago
David Wilson
7465e5b283
Add missing econtext.ssh to present list.
8 years ago
David Wilson
bdc2f291ca
Some importers don't implement all the optional interfaces.
8 years ago
David Wilson
ff903b1bcd
Rearrange docs, split connection methods into submodules.
8 years ago
David Wilson
87a4206015
Enhance utils.log_to_file().
8 years ago
David Wilson
81dd265c20
Catch BaseException to cope with KeyboardInterrupt and suchlike.
...
Django's module autoreloader calls sys.exit(), we want to catch that.
8 years ago
David Wilson
965350757f
Import working (but useless) connection plugin.
8 years ago
David Wilson
2feaf570bd
Reorient Sphinx layout to get subheadings in sidebar.
8 years ago
David Wilson
481ae1a933
Implement Importer.get_filename() and Importer.get_source()
...
Optional importer protocols required for Python to display annotated
tracebacks.
8 years ago
David Wilson
30991a6b42
Cure flake8 error.
8 years ago
David Wilson
ee56032758
Last ditch attempt to log main() thread crashes.
8 years ago
David Wilson
013634a317
Python2.4 lacks any().
8 years ago
David Wilson
d2829259a5
Python 3 compatible first stage.
8 years ago
David Wilson
08e80b824d
Another TODO
8 years ago
David Wilson
e4efcd9455
Don't do bool(source) as some modules are 0 bytes.
8 years ago
David Wilson
9e68408597
Draft importer tests.
8 years ago
David Wilson
799cd173c6
One more test case.
8 years ago
David Wilson
301972bc57
Restructure module importer to cope with Ansible.
8 years ago
David Wilson
66f92ad44c
Initial couple of tests.
8 years ago
David Wilson
d573340d5f
Remove old draft test.
8 years ago
David Wilson
5ccf90702e
Use sys.executable for LocalStream.python_path by default
...
But still use just 'python' for SshStream.
8 years ago
David Wilson
d4478ca25c
Don't use minimize_source() on third party code.
...
It breaks at least indentation.
8 years ago
David Wilson
a8cd86420a
Rename to avoid module name conflict.
8 years ago
David Wilson
fd9f5e6e60
Ansible example.
8 years ago
David Wilson
9d6d342af1
Add CallError to the permitted classes list.
8 years ago
David Wilson
3de06ca559
"Ansible compatible" module loader.
...
Since all Ansible modules ever written are using worst practice Python,
the module loader must be rewritten to cope with their horrors.
Ansible is woeful software:
* AnsibleModule argument declarations appear within the main() function,
so they can't be introspected prior to execution.
* No if __name__ == '__main__' guard means they can't be introspected
without triggering execution.
* By default the main() function attempts to read from stdin, hanging
our IO thread.
* So much unspeakable crap.
This rewrites the module loader to avoid actually running a module if it
can possibly be avoided. The downside is that the new loader must be
aware of far more details of the Python module mechanism. For example
with the new importer, namespace packages are broken at the very least.
On the plus side, now the module loader will be able to cope with
Django.
8 years ago
David Wilson
088d053a4e
Fix Waker repr.
8 years ago
David Wilson
2225ee2923
Convert CallError received on channel into exception.
8 years ago