Metadata-Version: 2.1
Name: hostess
Version: 0.10.2
Summary: intuitive admin library
Author-email: "M. St. Clair" <mstclair@millionconcepts.com>, Sierra Brown <sierra@millionconcepts.com>, Chase Million <chase@millionconcepts.com>
Project-URL: Repository, https://github.com/MillionConcepts/hostess
Project-URL: Documentation, https://hostess.readthedocs.io/en/latest/
Project-URL: Changelog, https://hostess.readthedocs.io/en/latest/version_history/
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Unix Shell
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cytoolz
Requires-Dist: dustgoggles
Requires-Dist: invoke
Requires-Dist: more-itertools
Requires-Dist: pandas
Requires-Dist: psutil
Requires-Dist: pyyaml
Requires-Dist: requests
Requires-Dist: rich
Provides-Extra: aws
Requires-Dist: boto3 ; extra == 'aws'
Requires-Dist: fabric ; extra == 'aws'
Provides-Extra: directory
Requires-Dist: python-magic ; extra == 'directory'
Provides-Extra: profilers
Requires-Dist: pympler ; extra == 'profilers'
Provides-Extra: ssh
Requires-Dist: fabric ; extra == 'ssh'
Provides-Extra: station
Requires-Dist: dill ; extra == 'station'
Requires-Dist: fire ; extra == 'station'
Requires-Dist: protobuf ; extra == 'station'
Requires-Dist: textual ; extra == 'station'
Provides-Extra: tests
Requires-Dist: pillow ; extra == 'tests'
Requires-Dist: pytest ; extra == 'tests'

# hostess

## overview

`hostess` provides lightweight, Pythonic interfaces to distributed resources, 
system processes, and Python internals. It includes high-level modules that 
provide special functionality for working with EC2 instances and S3 buckets,
and a framework (`station`) for workflow coordination -- along with all their 
lower-level building blocks.

`hostess` reduces syntactic headaches and boilerplate while still 
allowing low-level manipulation and, more broadly, still feeling like code. 
`hostess` has a special emphasis on fitting intuitively and idiomatically into 
common data science and scientific analysis workflows, but it is fundamentally 
a general-purpose utility and administration library.

## installation

`hostess` is available on PyPI and conda-forge. We recommend installing it
into a Conda environment using `conda`:
`conda install -n my_environment -c conda-forge hostess`. 

The conda-forge package installs all optional dependencies other than those
for tests and Notebooks. If you require more granular control over 
dependencies, please install from source.

## documentation

Examples for working with EC2 instances can be found [in this jupyter notebook](https://github.com/MillionConcepts/hostess/blob/main/examples/ec2.ipynb).

Examples for working with S3 buckets can be found [in this jupyter notebook](https://github.com/MillionConcepts/hostess/blob/main/examples/s3.ipynb).

[You can find an API reference and full changelog on readthedocs.](https://hostess.readthedocs.io)
[![Documentation Status](https://readthedocs.org/projects/hostess/badge/?version=latest)](https://hostess.readthedocs.io/en/latest/?badge=latest)

## compatibility

1. `hostess`'s core features are closely linked to the shell, so it is 
only fully compatible with Unix-scented operating systems. Linux and MacOS 
count, as does Windows Subsystem for Linux (WSL). Windows *outside* of WSL 
doesn't.
2. Some `hostess` modules require network access, specifically `ssh` and the
`aws` submodules. The `aws` submodules also require an AWS account. See the 
example Notebooks for more details on this.
3. `hostess` requires Python >= 3.9.
4. `hostess` is very lightweight. If a machine has enough resources to run 
a Python interpreter, it can probably run `hostess`.
5. `hostess.station` is not fully compatible with MacOS or WSL. MacOS and WSL 
compatibility is planned. All other parts of `hostess` are compatible with 
MacOS and WSL.

## cautions

`hostess` is a reliable and fairly feature-complete beta in active use on
multiple projects. However, we do not yet guarantee interface stability or
backwards compatibility. 

Also, as with _any_ system administration software, we recommend using it very 
carefully.

## tests

`hostess` includes a simple test suite compatible with `pytest`. More 
comprehensive tests are planned. (In particular, non-local networking features 
currently lack test coverage.) You can run the tests by executing `pytest -s` 
in the root directory. The `-s` flag is mandatory because `pytest` captures
stdout by default, which breaks some `hostess` features covered by the tests.

Tests require two additional dependencies: `pytest` and `pillow`.

## licensing

You can do almost anything with this software that you like, subject only to 
the extremely permissive terms of the [BSD 3-Clause License](LICENSE).
