# archon
![Versions](https://img.shields.io/badge/python->3.9-blue)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Documentation Status](https://readthedocs.org/projects/sdss-archon/badge/?version=latest)](https://sdss-archon.readthedocs.io/en/latest/?badge=latest)
[![Test](https://github.com/sdss/archon/actions/workflows/test.yml/badge.svg)](https://github.com/sdss/archon/actions/workflows/test.yml)
[![Docker](https://github.com/sdss/archon/actions/workflows/docker.yml/badge.svg)](https://github.com/sdss/archon/actions/workflows/docker.yml)
[![codecov](https://codecov.io/gh/sdss/archon/branch/main/graph/badge.svg)](https://codecov.io/gh/sdss/archon)
A library and actor to communicate with an STA Archon controller.
## Installation
In general you should be able to install ``archon`` by doing
```console
pip install sdss-archon
```
To build from source, use
```console
git clone git@github.com:sdss/archon
cd archon
pip install .
```
## Docker
The actor can run as a Docker container; new images for ``main`` (pointing to tag ``latest``) and tags are created via a GitHub Action. The images are stored in the GitHub Container Registry. To pull the latest image run
```console
docker pull ghcr.io/sdss/archon:latest
```
To run a container
```console
docker run --name archon --rm --detach --network host ghcr.io/sdss/archon:latest
```
This assumes that RabbitMQ is running on the default port in the host computer and that the Archon controllers are accessible over the host network.
## Development
`archon` uses [poetry](http://poetry.eustace.io/) for dependency management and packaging. To work with an editable install it's recommended that you setup `poetry` and install `archon` in a virtual environment by doing
```console
poetry install
```
Or in editable mode
```console
pip install -e .
```
Note that the latter will only install the production dependencies, not the development ones. You'll need to install those manually (see `pyproject.toml` `[tool.poetry.dev-dependencies]`).
### Style and type checking
This project uses the [black](https://github.com/psf/black) code style with 88-character line lengths for code and docstrings. It is recommended that you run `black` on save. Imports must be sorted using [isort](https://pycqa.github.io/isort/). The GitHub test workflow checks all the Python file to make sure they comply with the black formatting.
Linting uses [flake8](https://flake8.pycqa.org/en/latest/) and [isort](https://pycqa.github.io/isort/) rules implemented using [ruff](https://github.com/astral-sh/ruff).
For Visual Studio Code, the following project file is compatible with the project configuration:
```json
{
"[python]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports.ruff": "explicit"
},
"editor.wordWrap": "off",
"editor.tabSize": 4,
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[markdown]": {
"editor.wordWrapColumn": 88
},
"[restructuredtext]": {
"editor.wordWrapColumn": 88
},
"[json]": {
"editor.quickSuggestions": {
"strings": true
},
"editor.suggest.insertMode": "replace",
"gitlens.codeLens.scopes": ["document"],
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.tabSize": 2
},
"[yaml]": {
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.tabSize": 2,
"editor.autoIndent": "advanced",
"gitlens.codeLens.scopes": ["document"]
},
"prettier.tabWidth": 2,
"editor.rulers": [88],
"editor.wordWrapColumn": 88,
"python.analysis.typeCheckingMode": "basic"
}
```
This assumes that the [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) and [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) extensions are installed.
This project uses [type hints](https://docs.python.org/3/library/typing.html).
Raw data
{
"_id": null,
"home_page": "https://github.com/sdss/archon",
"name": "sdss-archon",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "astronomy, software",
"author": "Jos\u00e9 S\u00e1nchez-Gallego",
"author_email": "gallegoj@uw.edu",
"download_url": "https://files.pythonhosted.org/packages/98/d9/b2ca50a966f467b1b419688bf3628f291855232d93e328eee6bb80a37422/sdss_archon-0.14.0.tar.gz",
"platform": null,
"description": "# archon\n\n![Versions](https://img.shields.io/badge/python->3.9-blue)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Documentation Status](https://readthedocs.org/projects/sdss-archon/badge/?version=latest)](https://sdss-archon.readthedocs.io/en/latest/?badge=latest)\n[![Test](https://github.com/sdss/archon/actions/workflows/test.yml/badge.svg)](https://github.com/sdss/archon/actions/workflows/test.yml)\n[![Docker](https://github.com/sdss/archon/actions/workflows/docker.yml/badge.svg)](https://github.com/sdss/archon/actions/workflows/docker.yml)\n[![codecov](https://codecov.io/gh/sdss/archon/branch/main/graph/badge.svg)](https://codecov.io/gh/sdss/archon)\n\n\nA library and actor to communicate with an STA Archon controller.\n\n## Installation\n\nIn general you should be able to install ``archon`` by doing\n\n```console\npip install sdss-archon\n```\n\nTo build from source, use\n\n```console\ngit clone git@github.com:sdss/archon\ncd archon\npip install .\n```\n\n## Docker\n\nThe actor can run as a Docker container; new images for ``main`` (pointing to tag ``latest``) and tags are created via a GitHub Action. The images are stored in the GitHub Container Registry. To pull the latest image run\n\n```console\ndocker pull ghcr.io/sdss/archon:latest\n```\n\nTo run a container\n\n```console\ndocker run --name archon --rm --detach --network host ghcr.io/sdss/archon:latest\n```\n\nThis assumes that RabbitMQ is running on the default port in the host computer and that the Archon controllers are accessible over the host network.\n\n## Development\n\n`archon` uses [poetry](http://poetry.eustace.io/) for dependency management and packaging. To work with an editable install it's recommended that you setup `poetry` and install `archon` in a virtual environment by doing\n\n```console\npoetry install\n```\n\nOr in editable mode\n\n```console\npip install -e .\n```\n\nNote that the latter will only install the production dependencies, not the development ones. You'll need to install those manually (see `pyproject.toml` `[tool.poetry.dev-dependencies]`).\n\n### Style and type checking\n\nThis project uses the [black](https://github.com/psf/black) code style with 88-character line lengths for code and docstrings. It is recommended that you run `black` on save. Imports must be sorted using [isort](https://pycqa.github.io/isort/). The GitHub test workflow checks all the Python file to make sure they comply with the black formatting.\n\nLinting uses [flake8](https://flake8.pycqa.org/en/latest/) and [isort](https://pycqa.github.io/isort/) rules implemented using [ruff](https://github.com/astral-sh/ruff).\n\nFor Visual Studio Code, the following project file is compatible with the project configuration:\n\n```json\n{\n \"[python]\": {\n \"editor.formatOnSave\": true,\n \"editor.codeActionsOnSave\": {\n \"source.fixAll\": \"explicit\",\n \"source.organizeImports.ruff\": \"explicit\"\n },\n \"editor.wordWrap\": \"off\",\n \"editor.tabSize\": 4,\n \"editor.defaultFormatter\": \"ms-python.black-formatter\"\n },\n \"[markdown]\": {\n \"editor.wordWrapColumn\": 88\n },\n \"[restructuredtext]\": {\n \"editor.wordWrapColumn\": 88\n },\n \"[json]\": {\n \"editor.quickSuggestions\": {\n \"strings\": true\n },\n \"editor.suggest.insertMode\": \"replace\",\n \"gitlens.codeLens.scopes\": [\"document\"],\n \"editor.formatOnSave\": true,\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\",\n \"editor.tabSize\": 2\n },\n \"[yaml]\": {\n \"editor.insertSpaces\": true,\n \"editor.formatOnSave\": true,\n \"editor.tabSize\": 2,\n \"editor.autoIndent\": \"advanced\",\n \"gitlens.codeLens.scopes\": [\"document\"]\n },\n \"prettier.tabWidth\": 2,\n \"editor.rulers\": [88],\n \"editor.wordWrapColumn\": 88,\n \"python.analysis.typeCheckingMode\": \"basic\"\n}\n```\n\nThis assumes that the [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) and [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) extensions are installed.\n\nThis project uses [type hints](https://docs.python.org/3/library/typing.html).\n\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "A library and actor to communicate with an STA Archon controller.",
"version": "0.14.0",
"project_urls": {
"Documentation": "https://sdss-archon.readthedocs.org",
"Homepage": "https://github.com/sdss/archon",
"Repository": "https://github.com/sdss/archon"
},
"split_keywords": [
"astronomy",
" software"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e2b2b8cb955e255fb6a628fa08bf716b799a9bb91e4df2a15e089f280d22c8f6",
"md5": "09d57f86da77157900caf8b6e1c80159",
"sha256": "3edb5f1589e109c71622fe1be0b71927086fb002461fad90f7240b5f3abd55c9"
},
"downloads": -1,
"filename": "sdss_archon-0.14.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "09d57f86da77157900caf8b6e1c80159",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 59676,
"upload_time": "2024-07-15T04:06:49",
"upload_time_iso_8601": "2024-07-15T04:06:49.467805Z",
"url": "https://files.pythonhosted.org/packages/e2/b2/b8cb955e255fb6a628fa08bf716b799a9bb91e4df2a15e089f280d22c8f6/sdss_archon-0.14.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "98d9b2ca50a966f467b1b419688bf3628f291855232d93e328eee6bb80a37422",
"md5": "3e6b6e420c66dcc6c2fa951cb47d0cb4",
"sha256": "fe09ad987efa16b73daec778191574bc336a162b43026828f506260804da23b5"
},
"downloads": -1,
"filename": "sdss_archon-0.14.0.tar.gz",
"has_sig": false,
"md5_digest": "3e6b6e420c66dcc6c2fa951cb47d0cb4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 46709,
"upload_time": "2024-07-15T04:06:51",
"upload_time_iso_8601": "2024-07-15T04:06:51.249851Z",
"url": "https://files.pythonhosted.org/packages/98/d9/b2ca50a966f467b1b419688bf3628f291855232d93e328eee6bb80a37422/sdss_archon-0.14.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-15 04:06:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sdss",
"github_project": "archon",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "sdss-archon"
}