panoptes-utils


Namepanoptes-utils JSON
Version 0.2.50 PyPI version JSON
download
home_pageNone
SummaryAstronomical utilities for PANOPTES
upload_time2025-08-17 03:52:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseThe MIT License (MIT) Copyright (c) 2020 Project PANOPTES Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords panoptes astronomy physics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            PANOPTES Utilities
==================

<p align="center">
<img src="https://www.gitbook.com/cdn-cgi/image/width=256,dpr=2,height=40,fit=contain,format=auto/https%3A%2F%2F1730110767-files.gitbook.io%2F~%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FDWxHUx4DyP5m2IEPanYp%252Flogo%252FKkSF3LQc9Zy10M3n5SQa%252F271B3C3C-4A2D-4679-884D-9892825C87E7.png%3Falt%3Dmedia%26token%3D6e7b448f-6f22-4afa-9c1c-2b3449b5f411" alt="PANOPTES Logo" />
</p>
<br>

[![GHA Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fpanoptes%2Fpanoptes-utils%2Fbadge%3Fref%3Ddevelop&style=flat)](https://actions-badge.atrox.dev/panoptes/panoptes-utils/goto?ref=develop) 
[![codecov](https://codecov.io/gh/panoptes/panoptes-utils/graph/badge.svg?token=YCzESBa7rK)](https://codecov.io/gh/panoptes/panoptes-utils)
[![Documentation Status](https://readthedocs.org/projects/panoptes-utils/badge/?version=latest)](https://panoptes-utils.readthedocs.io/en/latest/?badge=latest) 
[![PyPI version](https://badge.fury.io/py/panoptes-utils.svg)](https://badge.fury.io/py/panoptes-utils)

Utility functions for use within the [Project PANOPTES](https://projectpanoptes.org) ecosystem and for general
astronomical processing.

This library defines a number of modules that contain useful functions as well as a few services.

Install
-------

To install type:

```bash
pip install panoptes-utils
```

Full options for install:

```bash
pip install "panoptes-utils[config,docs,images,testing,social]"
```

See the full documentation at: https://panoptes-utils.readthedocs.io

Dependencies
------------

There are a few system dependencies depending on what functionality you will be using.

In particular, the plate solving requires `astrometry.net` and the appropriate index files.

Use the following on a debian-based system (e.g. Ubuntu) to easily install all dependencies:

```bash
apt-get update && apt-get install --no-install-recommends --yes \
  libffi-dev libssl-dev \
  astrometry.net astrometry-data-tycho2 \
  dcraw exiftool libcfitsio-dev libcfitsio-bin \
  libfreetype6-dev libpng-dev libjpeg-dev libffi-dev
```

Command Line
------------

The `panoptes-utils` command line tool is available for use with subcommands
corresponding to the modules in this library. Currently, the only implemented
subcommand is `image`, which includes commands for converting `cr2` files into
`jpg` and/or `fits` files as well as for plate-solving `fits` images.

The `panoptes-utils image watch <path>` command will watch the given path for
new files and convert them to `jpg` and/or `fits` files as they are added.

See `panoptes-utils --help` and `panoptes-utils image --help` for details.


Config Server
-------------

There is a simple key-value configuration server available as part of the module.

After installing with the `config` option as above, type:

```bash
panoptes-config-server run --config-file <path-to-file.yaml>
```

### Development with Hatch

This project uses the Hatch build system and environment management.

Prerequisites:
- Python 3.12+
- Hatch: https://hatch.pypa.io (install via `pipx install hatch` or `pip install --user hatch`).

Basic workflow:

- Create and enter a dev environment with all testing tools:
  ```bash
  hatch env create
  hatch shell
  # or run commands without activating the shell using `hatch run ...`
  ```

- Install optional extras as needed (choose any):
  ```bash
  # Examples: google, focuser, sensors, weather
  hatch run pip install -e ".[config,images,testing]"
  ```

- Run tests:
  ```bash
  # All tests with coverage, using pytest options from pyproject.toml
  hatch run pytest

  # Single test file
  hatch run pytest tests/test_utils.py
  ```

- Lint / style checks:
  ```bash
  # Lint (Ruff)
  hatch run lint
  # Format (Ruff)
  hatch run fmt
  # Check formatting without changes
  hatch run fmt-check
  ```

- Build the package (wheel and sdist):
  ```bash
  hatch build
  ```

- Run the CLI locally (Typer app):
  ```bash
  hatch run pocs --help
  ```

- Versioning:
  Version is derived from git tags via hatch-vcs. To produce a new version, create and push a tag (e.g., `v0.1.0`).

#### [Testing]

To test the software, prefer running via Hatch so the right environment and options are used:

```bash
hatch run pytest
```

By default all tests will be run. If you want to run one specific test, give the specific filename as an argument to `pytest`:

```bash
hatch run pytest tests/test_mount.py
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "panoptes-utils",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "PANOPTES, astronomy, physics",
    "author": null,
    "author_email": "PANOPTES Team <developers@projectpanoptes.org>",
    "download_url": "https://files.pythonhosted.org/packages/3c/5b/4774fc64df2cf1929e4fb0c54f2300415f5426f2d35b77f0e921b257accc/panoptes_utils-0.2.50.tar.gz",
    "platform": null,
    "description": "PANOPTES Utilities\n==================\n\n<p align=\"center\">\n<img src=\"https://www.gitbook.com/cdn-cgi/image/width=256,dpr=2,height=40,fit=contain,format=auto/https%3A%2F%2F1730110767-files.gitbook.io%2F~%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FDWxHUx4DyP5m2IEPanYp%252Flogo%252FKkSF3LQc9Zy10M3n5SQa%252F271B3C3C-4A2D-4679-884D-9892825C87E7.png%3Falt%3Dmedia%26token%3D6e7b448f-6f22-4afa-9c1c-2b3449b5f411\" alt=\"PANOPTES Logo\" />\n</p>\n<br>\n\n[![GHA Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fpanoptes%2Fpanoptes-utils%2Fbadge%3Fref%3Ddevelop&style=flat)](https://actions-badge.atrox.dev/panoptes/panoptes-utils/goto?ref=develop) \n[![codecov](https://codecov.io/gh/panoptes/panoptes-utils/graph/badge.svg?token=YCzESBa7rK)](https://codecov.io/gh/panoptes/panoptes-utils)\n[![Documentation Status](https://readthedocs.org/projects/panoptes-utils/badge/?version=latest)](https://panoptes-utils.readthedocs.io/en/latest/?badge=latest) \n[![PyPI version](https://badge.fury.io/py/panoptes-utils.svg)](https://badge.fury.io/py/panoptes-utils)\n\nUtility functions for use within the [Project PANOPTES](https://projectpanoptes.org) ecosystem and for general\nastronomical processing.\n\nThis library defines a number of modules that contain useful functions as well as a few services.\n\nInstall\n-------\n\nTo install type:\n\n```bash\npip install panoptes-utils\n```\n\nFull options for install:\n\n```bash\npip install \"panoptes-utils[config,docs,images,testing,social]\"\n```\n\nSee the full documentation at: https://panoptes-utils.readthedocs.io\n\nDependencies\n------------\n\nThere are a few system dependencies depending on what functionality you will be using.\n\nIn particular, the plate solving requires `astrometry.net` and the appropriate index files.\n\nUse the following on a debian-based system (e.g. Ubuntu) to easily install all dependencies:\n\n```bash\napt-get update && apt-get install --no-install-recommends --yes \\\n  libffi-dev libssl-dev \\\n  astrometry.net astrometry-data-tycho2 \\\n  dcraw exiftool libcfitsio-dev libcfitsio-bin \\\n  libfreetype6-dev libpng-dev libjpeg-dev libffi-dev\n```\n\nCommand Line\n------------\n\nThe `panoptes-utils` command line tool is available for use with subcommands\ncorresponding to the modules in this library. Currently, the only implemented\nsubcommand is `image`, which includes commands for converting `cr2` files into\n`jpg` and/or `fits` files as well as for plate-solving `fits` images.\n\nThe `panoptes-utils image watch <path>` command will watch the given path for\nnew files and convert them to `jpg` and/or `fits` files as they are added.\n\nSee `panoptes-utils --help` and `panoptes-utils image --help` for details.\n\n\nConfig Server\n-------------\n\nThere is a simple key-value configuration server available as part of the module.\n\nAfter installing with the `config` option as above, type:\n\n```bash\npanoptes-config-server run --config-file <path-to-file.yaml>\n```\n\n### Development with Hatch\n\nThis project uses the Hatch build system and environment management.\n\nPrerequisites:\n- Python 3.12+\n- Hatch: https://hatch.pypa.io (install via `pipx install hatch` or `pip install --user hatch`).\n\nBasic workflow:\n\n- Create and enter a dev environment with all testing tools:\n  ```bash\n  hatch env create\n  hatch shell\n  # or run commands without activating the shell using `hatch run ...`\n  ```\n\n- Install optional extras as needed (choose any):\n  ```bash\n  # Examples: google, focuser, sensors, weather\n  hatch run pip install -e \".[config,images,testing]\"\n  ```\n\n- Run tests:\n  ```bash\n  # All tests with coverage, using pytest options from pyproject.toml\n  hatch run pytest\n\n  # Single test file\n  hatch run pytest tests/test_utils.py\n  ```\n\n- Lint / style checks:\n  ```bash\n  # Lint (Ruff)\n  hatch run lint\n  # Format (Ruff)\n  hatch run fmt\n  # Check formatting without changes\n  hatch run fmt-check\n  ```\n\n- Build the package (wheel and sdist):\n  ```bash\n  hatch build\n  ```\n\n- Run the CLI locally (Typer app):\n  ```bash\n  hatch run pocs --help\n  ```\n\n- Versioning:\n  Version is derived from git tags via hatch-vcs. To produce a new version, create and push a tag (e.g., `v0.1.0`).\n\n#### [Testing]\n\nTo test the software, prefer running via Hatch so the right environment and options are used:\n\n```bash\nhatch run pytest\n```\n\nBy default all tests will be run. If you want to run one specific test, give the specific filename as an argument to `pytest`:\n\n```bash\nhatch run pytest tests/test_mount.py\n```\n",
    "bugtrack_url": null,
    "license": "The MIT License (MIT)\n        \n        Copyright (c) 2020 Project PANOPTES\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "Astronomical utilities for PANOPTES",
    "version": "0.2.50",
    "project_urls": {
        "Documentation": "https://panoptes-utils.readthedocs.io",
        "Forum": "https://forum.projectpanoptes.org",
        "Homepage": "https://github.com/panoptes/panoptes-utils",
        "POCS Documentation": "https://pocs.readthedocs.io",
        "Project PANOPTES": "https://www.projectpanoptes.org"
    },
    "split_keywords": [
        "panoptes",
        " astronomy",
        " physics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "29258838eadda65c5cf6ce1023045834318a7f4390ef574fa85bb29453c8fbf2",
                "md5": "ad4c6a68c291b41b014b03ee16377ee2",
                "sha256": "58d0d1c66f595a63fd2e52974332ee4d94b7564604956a05b4799ab70571e016"
            },
            "downloads": -1,
            "filename": "panoptes_utils-0.2.50-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ad4c6a68c291b41b014b03ee16377ee2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 69118,
            "upload_time": "2025-08-17T03:52:35",
            "upload_time_iso_8601": "2025-08-17T03:52:35.956689Z",
            "url": "https://files.pythonhosted.org/packages/29/25/8838eadda65c5cf6ce1023045834318a7f4390ef574fa85bb29453c8fbf2/panoptes_utils-0.2.50-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c5b4774fc64df2cf1929e4fb0c54f2300415f5426f2d35b77f0e921b257accc",
                "md5": "0c75ba9776db533dc7a66c27db762afd",
                "sha256": "feebb3f07b9d1f72dba495d30562c7279c2b2403cce23675e90bfe9411b2dfa6"
            },
            "downloads": -1,
            "filename": "panoptes_utils-0.2.50.tar.gz",
            "has_sig": false,
            "md5_digest": "0c75ba9776db533dc7a66c27db762afd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 55727,
            "upload_time": "2025-08-17T03:52:37",
            "upload_time_iso_8601": "2025-08-17T03:52:37.382223Z",
            "url": "https://files.pythonhosted.org/packages/3c/5b/4774fc64df2cf1929e4fb0c54f2300415f5426f2d35b77f0e921b257accc/panoptes_utils-0.2.50.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-17 03:52:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "panoptes",
    "github_project": "panoptes-utils",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "panoptes-utils"
}
        
Elapsed time: 0.93185s