diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 54ed084..87b9701 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,30 +1,3 @@ -```{todo} THIS IS SUPPOSED TO BE AN EXAMPLE. MODIFY IT ACCORDING TO YOUR NEEDS! - - The document assumes you are using a source repository service that promotes a - contribution model similar to [GitHub's fork and pull request workflow]. - While this is true for the majority of services (like GitHub, GitLab, - BitBucket), it might not be the case for private repositories (e.g., when - using Gerrit). - - Also notice that the code examples might refer to GitHub URLs or the text - might use GitHub specific terminology (e.g., *Pull Request* instead of *Merge - Request*). - - Please make sure to check the document having these assumptions in mind - and update things accordingly. -``` - -```{todo} Provide the correct links/replacements at the bottom of the document. -``` - -```{todo} You might want to have a look on [PyScaffold's contributor's guide], - - especially if your project is open source. The text should be very similar to - this template, but there are a few extra contents that you might decide to - also include, like mentioning labels of your issue tracker or automated - releases. -``` - # Contributing Welcome to `progressive-automations-python` contributor's guide. @@ -64,32 +37,7 @@ you help us to identify the root cause of the issue. You can help improve `progressive-automations-python` docs by making them more readable and coherent, or by adding missing information and correcting mistakes. -`progressive-automations-python` documentation uses [Sphinx] as its main documentation compiler. -This means that the docs are kept in the same repository as the project code, and -that any documentation update is done in the same way was a code contribution. - -```{todo} Don't forget to mention which markup language you are using. - - e.g., [reStructuredText] or [CommonMark] with [MyST] extensions. -``` - -```{todo} If your project is hosted on GitHub, you can also mention the following tip: - - :::{tip} - Please notice that the [GitHub web interface] provides a quick way of - propose changes in `progressive-automations-python`'s files. While this mechanism can - be tricky for normal code contributions, it works perfectly fine for - contributing to the docs, and can be quite handy. - - If you are interested in trying this method out, please navigate to - the `docs` folder in the source [repository], find which file you - would like to propose changes and click in the little pencil icon at the - top, to open [GitHub's code editor]. Once you finish editing the file, - please write a message in the form at the bottom of the page describing - which changes have you made and what are the motivations behind them and - submit your proposal. - ::: -``` +`progressive-automations-python` documentation uses [Sphinx] with [MyST] Markdown extensions. When working on documentation changes in your local machine, you can compile them using [tox] : @@ -107,13 +55,6 @@ python3 -m http.server --directory 'docs/_build/html' ## Code Contributions -```{todo} Please include a reference or explanation about the internals of the project. - - An architecture description, design principles or at least a summary of the - main concepts will make it easy for potential contributors to get started - quickly. -``` - ### Submit an issue Before you work on any non-trivial code contribution it's best to first create @@ -160,9 +101,6 @@ conda activate progressive-automations-python to be able to import the package under development in the Python REPL. - ```{todo} if you are not using pre-commit, please remove the following item: - ``` - 5. Install [pre-commit]: ``` @@ -197,11 +135,7 @@ conda activate progressive-automations-python to record your changes in [git]. - ```{todo} if you are not using pre-commit, please remove the following item: - ``` - - Please make sure to see the validation messages from [pre-commit] and fix - any eventual issues. + See the validation messages from [pre-commit] and fix any issues. This should automatically use [flake8]/[black] to check/fix the code style in a way that is compatible with the project. @@ -241,13 +175,7 @@ conda activate progressive-automations-python 2. Go to the web page of your fork and click "Create pull request" to send your changes for review. - ```{todo} if you are using GitHub, you can uncomment the following paragraph - Find more detailed information in [creating a PR]. You might also want to open - the PR as a draft first and mark it as ready for review after the feedbacks - from the continuous integration (CI) system or any required fixes. - - ``` ### Troubleshooting @@ -306,15 +234,7 @@ package: ### Releases -```{todo} This section assumes you are using PyPI to publicly release your package. - - If instead you are using a different/private package index, please update - the instructions accordingly. -``` - -If you are part of the group of maintainers and have correct user permissions -on [PyPI], the following steps can be used to release a new version for -`progressive-automations-python`: +Steps to release a new version to [PyPI]: 1. Make sure all unit tests are successful. 2. Tag the current commit on the main branch with a release tag, e.g., `v1.2.3`. @@ -365,8 +285,5 @@ on [PyPI], the following steps can be used to release a new version for [virtualenv]: https://virtualenv.pypa.io/en/stable/ -```{todo} Please review and change the following definitions: -``` - -[repository]: https://github.com//progressive-automations-python -[issue tracker]: https://github.com//progressive-automations-python/issues +[repository]: https://github.com/AccelerationConsortium/progressive-automations-python +[issue tracker]: https://github.com/AccelerationConsortium/progressive-automations-python/issues diff --git a/README.md b/README.md index 21bf1b3..9398b52 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,9 @@ > Python package for programmatically controlling Progressive Automations desk lifters (e.g., LG-07 modular lifting column via FLTCON) with Prefect workflow orchestration. -Control your desk lifter remotely via Prefect Cloud deployments with asynchronous execution and position polling. Perfect for laboratory automation where the desk position needs to be coordinated with other equipment. +Currently used for the Progressive Automations LG-07 lifting column. May be expanded to other systems. Open a new issue if this is of interest. + +Control desk lifters remotely via Prefect Cloud deployments with asynchronous execution and position polling. ## Quick Start diff --git a/docs/bill_of_materials.md b/docs/bill_of_materials.md index 9640ad0..1148cc4 100644 --- a/docs/bill_of_materials.md +++ b/docs/bill_of_materials.md @@ -1,6 +1,6 @@ # Bill of Materials -This document lists the parts used in the current Progressive Automations build. Quantities use the first number provided by the requester. +Parts used in the current Progressive Automations build. | Part Number | Description | Quantity | Price | |-------------|-------------|:--------:|------:| @@ -9,9 +9,8 @@ This document lists the parts used in the current Progressive Automations build. | [RT-11](https://www.progressiveautomations.com/products/rt-11) | Table Lift Hand Remote - 4 Positions Memory Function | 1 | 9.99 USD | | [FLTCON-1](https://www.progressiveautomations.com/products/fltcon-1) | Hall Effect Control Box with Presets - 110 VAC - 24 VDC - 1 Channel | 1 | 199.00 USD | | [LG-07-3RM-32-440-HS-24V-B (black variant)](https://www.progressiveautomations.com/products/lg-07?variant=43102968447156) | 3 Stage Industrial Lifting Column - 32" Stroke - 440 lbs Force - Synchronizable - Anodic Oxide Black | 1 | 749.00 USD | +| | **Total** | | **534.96 USD** | Notes: -- Quantities were taken from the first numeric field provided in the user's input. -- All product links point to official Progressive Automations product pages (requested). -- Prices shown were provided by the user (listed as of 11/6/2025). -- If you want additional fields (supplier SKUs, unit cost breakdown, CSV/Excel export), tell me and I'll add them. +- Product links point to official Progressive Automations product pages. +- Prices listed as of 11/6/2025. diff --git a/docs/index.md b/docs/index.md index 8a52c08..b0e1cc6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,18 +1,6 @@ # progressive-automations-python -Python package for programmatically controlling progressive automations tools (e.g., LG-07 modular lifting column via FLTCON). - - -## Note - -> This is the main page of your project's [Sphinx] documentation. It is -> formatted in [Markdown]. Add additional pages by creating md-files in -> `docs` or rst-files (formatted in [reStructuredText]) and adding links to -> them in the `Contents` section below. -> -> Please check [Sphinx] and [MyST] for more information -> about how to document your project and how to configure your preferences. - +Python package for programmatically controlling Progressive Automations desk lifters (e.g., LG-07 modular lifting column via FLTCON) with Prefect workflow orchestration. ## Contents diff --git a/docs/installation-and-usage.md b/docs/installation-and-usage.md index 8508339..0fe17e0 100644 --- a/docs/installation-and-usage.md +++ b/docs/installation-and-usage.md @@ -83,7 +83,9 @@ Keep this running in a terminal or set up as a systemd service for automatic sta ## Testing During Initial Setup -> **Note**: The `progressive_automations_python` CLI is provided for initial hardware testing and troubleshooting only. For production use, trigger flows via `run_deployment()` or Prefect's CLI. +```{note} +The `progressive_automations_python` CLI is for initial hardware testing and troubleshooting. For production use, trigger flows via `run_deployment()` or Prefect's CLI. The package can also be used standalone, independent of Prefect. +``` ### Test Hardware Connections @@ -104,7 +106,7 @@ progressive_automations_python --status ## Production Usage: Async Deployment and Position Polling -**This is the primary way to use the desk lifter system.** Trigger movements asynchronously from external systems and poll their status later. +Trigger movements asynchronously from external systems and poll their status later. ### Triggering Movements Asynchronously @@ -170,9 +172,6 @@ async def wait_for_movement_completion(flow_run_id, check_interval=5, max_wait=3 """ Poll until movement completes or timeout. - This is similar to preheating an oven - you set the temperature and check later, - not sit in front of it the whole time. - Args: flow_run_id: The flow run ID from run_deployment check_interval: Seconds between status checks (default: 5) @@ -438,14 +437,14 @@ This displays comprehensive code examples for: ## Next Steps -1. ✅ Complete hardware setup per [Raspberry Pi Setup](raspberry-pi-setup.md) -2. ✅ Install package: `pip install progressive-automations-python` -3. ✅ Configure Prefect Cloud: `prefect cloud login -k ` -4. ✅ Create work pool: `prefect work-pool create desk-lifter-pool --type process` -5. ✅ Deploy flows via Python: `create_deployments("desk-lifter-pool")` -6. ✅ Start worker: `prefect worker start --pool desk-lifter-pool` -7. ✅ Test hardware (optional): `progressive_automations_python --test UP` -8. ✅ **Trigger flows via `run_deployment()` from your automation code!** +1. Complete hardware setup per [Raspberry Pi Setup](raspberry-pi-setup.md) +2. Install package: `pip install progressive-automations-python` +3. Configure Prefect Cloud: `prefect cloud login -k ` +4. Create work pool: `prefect work-pool create desk-lifter-pool --type process` +5. Deploy flows: `python -c "from progressive_automations_python.deployment import create_deployments; create_deployments('desk-lifter-pool')"` +6. Start worker: `prefect worker start --pool desk-lifter-pool` +7. Test hardware (optional): `progressive_automations_python --test UP` +8. Trigger flows via `run_deployment()` from automation code For more information, see: - [Raspberry Pi Setup](raspberry-pi-setup.md) diff --git a/src/progressive_automations_python/deployment.py b/src/progressive_automations_python/deployment.py index febefb9..3b7cc1a 100644 --- a/src/progressive_automations_python/deployment.py +++ b/src/progressive_automations_python/deployment.py @@ -38,9 +38,9 @@ def create_deployments(work_pool_name: str = "desk-lifter-pool"): work_pool_name=work_pool_name, description="Move desk to a specific height position with duty cycle management" ) - print(f"✓ Deployed 'simple-movement-flow/move-to-position'") + print(f"Deployed 'simple-movement-flow/move-to-position'") - print(f"\n🎉 Deployment created successfully!") + print(f"\nDeployment created successfully.") print(f"\nNext steps:") print(f"1. Start a worker: prefect worker start --pool {work_pool_name}") print(f"2. Trigger a flow from Python:")