Metadata-Version: 2.5
Name: mycelium-client
Version: 0.3.0
Summary: The official client for the Mycelium file-sharing protocol.
Project-URL: Documentation, https://git.mojavesoft.org/mycelium/mycelium-client
Project-URL: Issues, https://git.mojavesoft.org/mycelium/mycelium-client/issues
Project-URL: Source, https://git.mojavesoft.org/mycelium/mycelium-client
Author-email: PPPDUD <mojavesoft@gmail.com>
License-Expression: MIT
License-File: LICENSE.txt
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.8
Requires-Dist: requests~=2.34
Provides-Extra: cli
Requires-Dist: click~=8.4; extra == 'cli'
Requires-Dist: tqdm~=4.67; extra == 'cli'
Description-Content-Type: text/markdown

# mycelium-client
This is the official reference implementation of the Mycelium client software, written in Python. It comes with a library for Python applications, as well as a CLI for end-users.

## Usage
### As a CLI
In order to use the Mycelium client as a CLI, you need to install the `mycelium-client[cli]` variant:

~~~bash
pip3 install mycelium-client[cli]
~~~

Once that's done, you can get help information with `mycelium-client --help`:

~~~
$ mycelium-client --help
Usage: mycelium-client [OPTIONS] [COMMAND] [ARGS]...

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  fetch
  show
~~~

### As a Python library
The Mycelium client includes experimental support for use as a Python library without installing the CLI dependencies (this is what's supplied with the normal `mycelium-client` package):

~~~python3
import mycelium_client as mycelium
mycelium.fetch_hash(asset_hash="abcdef123...", oak="http://example.com:8000/", use_tqdm=False, quiet=True, timeout=15) # Fetch a hash.

mycelium.show_entries_md(filter_hash="", oak="http://example.com:8000/") # Generate human-readable Markdown describing the current entries advertised by an Oak. Leave filter_hash blank to disable hash filtering; set to a hash to filter for it.
~~~

Make sure to use version pinning whenever you're writing code that depends on `mycelium-client`, as it has breaking changes frequently and is still very much not ready for production.