Metadata-Version: 2.1
Name: homecloud
Version: 0.3.4
Summary: A command line tool for generating the template files needed to integrate fastapi, uvicorn, and a requests based client into a Python project.
Project-URL: Homepage, https://github.com/matt-manes/homecloud
Project-URL: Documentation, https://github.com/matt-manes/homecloud/tree/main/docs
Project-URL: Source code, https://github.com/matt-manes/homecloud/tree/main/src/homecloud
Author-email: Matt Manes <mattmanes@pm.me>
License-File: LICENSE.txt
Keywords: api,client,fastapi,network,server
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: black
Requires-Dist: dummy-client
Requires-Dist: fastapi
Requires-Dist: lanutils
Requires-Dist: pathier
Requires-Dist: pydantic
Requires-Dist: requests
Requires-Dist: tomlkit
Description-Content-Type: text/markdown

# homecloud
W.I.P/ more detailed readme to come<br>
A command line tool for generating the template files needed to integrate fastapi, uvicorn, and a requests based client into a Python project
over a local network. <br>
Devices on the local network running a client can automatically find the server for their app name at startup.<br>

## Installation

Install with
<pre>
pip install homecloud
</pre>

## Usage

Navigate to your project directory in the terminal
and run 
<pre>
>homecloud
</pre>

Several files should have been generated.
Assuming the project directory is called myapp,
you should see the following files:
<pre>
homecloud_config.toml
myapp_client.py
myapp_get_routes.py
myapp_post_routes.py
myapp_request_models.py
myapp_server.py
</pre>

The server for myapp can be started by running the `myapp_server.py` script.<br>
Any device on the local network that runs code that creates a `myapp.MyappClient` object 
should be able to automatically find the ip address and port of the myapp server.<br>
<br>
Other `myapp_*_routes.py` files can be generated by passing their names with the `-r/--routes` 
switch to the `homecloud` tool.<br>
If, earlier, we ran
<pre>
>homecloud -r trace put
</pre>
then we would have generated the previous files as well as
<pre>
myapp_trace_routes.py
myapp_put_routes.py
</pre>

The help display for `homecloud`:
<pre>
>homecloud -h
usage: homecloud [-h] [-r [ROUTES ...]] [-d DESTINATION] [app_name]

positional arguments:
  app_name              The name of the app to generate files for. If a value isn't provided, the folder name of the current working directory will be used.

options:
  -h, --help            show this help message and exit
  -r [ROUTES ...], --routes [ROUTES ...]
                        The routes to generate files for in addition to 'get' and 'post' routes.
  -d DESTINATION, --destination DESTINATION
                        The directory to save the generated files to. By default, uses the current working directory.
</pre>
