Metadata-Version: 2.1
Name: pyscope
Version: 0.1.5
Summary: A python package for controlling small optical telescopes
Author: Walter Golay
Author-email: wgolay@cfa.harvard.edu
License: AGPLv3
Project-URL: Source, https://github.com/WWGolay/pyscope
Project-URL: Documentation, https://pyscope.readthedocs.io/en/latest/
Keywords: astronomy,astrophysics,telescope,astrophotography,astrometry,photometry,python,automation,ascom,astropy,observatory,observatory automation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: alpyca==2.0.4
Requires-Dist: astroplan==0.9.1
Requires-Dist: astropy==5.3.3
Requires-Dist: astroquery==0.4.6
Requires-Dist: astroscrappy==1.1.0
Requires-Dist: click==8.1.7
Requires-Dist: cmcrameri==1.7.0
Requires-Dist: markdown==3.4.4
Requires-Dist: matplotlib==3.8.0
Requires-Dist: numpy==1.26.0
Requires-Dist: paramiko==3.3.1
Requires-Dist: photutils==1.9.0
Requires-Dist: prettytable==3.9.0
Requires-Dist: pywin32==306; platform_system == "Windows"
Requires-Dist: scikit-image==0.21.0
Requires-Dist: scipy==1.10.1
Requires-Dist: smplotlib==0.0.9
Requires-Dist: timezonefinder==6.2.0
Requires-Dist: tksheet==6.2.4
Requires-Dist: tqdm==4.66.1
Provides-Extra: docs
Requires-Dist: sphinx==7.2.5; extra == "docs"
Requires-Dist: sphinx-astropy[confv2]==1.9.1; extra == "docs"
Requires-Dist: sphinx-favicon==1.0.1; extra == "docs"
Requires-Dist: sphinxcontrib-programoutput==0.17; extra == "docs"
Provides-Extra: tests
Requires-Dist: pytest==7.4.0; extra == "tests"
Requires-Dist: pytest-cov==4.1.0; extra == "tests"
Requires-Dist: pytest-doctestplus==1.0.0; extra == "tests"
Provides-Extra: dev
Requires-Dist: black==23.7.0; extra == "dev"
Requires-Dist: build==1.0.3; extra == "dev"
Requires-Dist: docutils==0.19; extra == "dev"
Requires-Dist: esbonio==0.16.1; extra == "dev"
Requires-Dist: isort==5.12.0; extra == "dev"
Requires-Dist: pre-commit==3.3.3; extra == "dev"
Requires-Dist: pytest==7.4.0; extra == "dev"
Requires-Dist: pytest-cov==4.1.0; extra == "dev"
Requires-Dist: pytest-order==1.0.1; extra == "dev"
Requires-Dist: rstcheck==6.1.2; extra == "dev"
Requires-Dist: sphinx==7.2.5; extra == "dev"
Requires-Dist: sphinx-astropy[confv2]==1.9.1; extra == "dev"
Requires-Dist: sphinx-favicon==1.0.1; extra == "dev"
Requires-Dist: sphinxcontrib-programoutput==0.17; extra == "dev"
Requires-Dist: twine==4.0.2; extra == "dev"

*******
pyscope
*******

.. container::

    |License| |Zenodo| |PyPI Version| |PyPI Python Versions| |PyPI Downloads| |Astropy| |GitHub CI| |Code Coverage| |Documentation Status| |Codespaces Status| |pre-commit| |Black| |isort| |Donate|

This is the repository for `pyscope <https://pyscope.readthedocs.io/en/latest/>`_,
a pure-Python package for robotic scheduling, operation, and control of small
optical telescopes.

`pyscope <https://pyscope.readthedocs.io/en/latest/>`_ is an
`open-source <LICENSE>`_ project that provides a set of tools to rapidly and easily
control astronomical instrumentation. It is designed to be modular and extensible,
allowing users to easily add support for new devices and observatories.
`pyscope <https://pyscope.readthedocs.io/en/latest/>`_ is built on top of the
`ASCOM <https://ascom-standards.org/>`_ standard, but also provides support for
non-ASCOM devices. Users may also access their devices through third-party applications
such as `MaxIm DL <https://diffractionlimited.com/product/maxim-dl/>`_.

Observatories who use `pyscope <https://pyscope.readthedocs.io/en/latest/>`_ can take
advantage of the `telrun <https://pyscope.readthedocs.io/en/latest/api/pyscope.telrun.html>`_
module, which provides a simple interface for fully-robotic observatory control.

`pyscope <https://pyscope.readthedocs.io/en/latest/>`_ is aiming to become an
`astropy-affiliated package <https://www.astropy.org/affiliated/>`_.

Features
--------
* Control observatory hardware with Python

* Support for `ASCOM <https://ascom-standards.org/>`_ and non-ASCOM devices

* `Observatory <https://pyscope.readthedocs.io/en/latest/api/auto_api/pyscope.observatory.Observatory.html>`_
  convenience methods like `run_autofocus <https://pyscope.readthedocs.io/en/latest/api/auto_api/pyscope.observatory.Observatory.html#pyscope.observatory.Observatory.run_autofocus>`_
  and `recenter <https://pyscope.readthedocs.io/en/latest/api/auto_api/pyscope.observatory.Observatory.html#pyscope.observatory.Observatory.recenter>`_

* `telrun <https://pyscope.readthedocs.io/en/latest/api/pyscope.telrun.html>`_ module
  for fully-robotic operation of an observatory

* Basic data reduction tools like
  `avg_fits <https://pyscope.readthedocs.io/en/latest/api/auto_api/pyscope.reduction.avg_fits.html>`_
  and `ccd_calib <https://pyscope.readthedocs.io/en/latest/api/auto_api/pyscope.reduction.ccd_calib.html#pyscope.reduction.ccd_calib>`_

* Simple analysis scripts like
  `calc_zmag <https://pyscope.readthedocs.io/en/latest/api/auto_api/pyscope.analysis.calc_zmag.html#pyscope.analysis.calc_zmag>`_

* Powered by `Astropy <https://www.astropy.org/>`_,
  `Astropy-affiliated <https://www.astropy.org/affiliated/>`_
  packages, and `ASCOM <https://ascom-standards.org/>`_

Installation
------------
pyscope is available on PyPI and can be installed with pip:

.. code-block:: bash

    pip install pyscope

pyscope will be available on conda-forge soon.

Development Installation
========================
|Codespaces|

We recommend using a virtual environment for development. You may create a new
virtual environment with pip:

.. code-block:: bash

    python -m venv pyscope-dev
    source pyscope-dev/bin/activate

Or with conda:

.. code-block:: bash

    conda create -n pyscope-dev python=3.10.12
    conda activate pyscope-dev

To install pyscope for development, clone the repository and install with pip:

.. code-block:: bash

    git clone https://github.com/WWGolay/pyscope
    cd pyscope
    pip install -e ".[dev]"

Usage
-----
TBD

Documentation
-------------
All supporting documentation can be found at `readthedocs <https://pyscope.readthedocs.io/en/latest/>`_.

Citing
------
If you use this package in your research, please cite it using the following:

Contributing
------------
Please see the `developer documentation <https://pyscope.readthedocs.io/en/latest/development/>`_.

License
-------
This project is licensed under the `GNU AGPLv3 License <LICENSE>`_.

Issues
------
Please post any issues you find `here <https://github.com/WWGolay/pyscope/issues>`_.

.. |License| image:: https://img.shields.io/pypi/l/pyscope
    :target: https://pypi.org/project/pyscope/
    :alt: License

.. |Zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.8403570.svg
    :target: https://doi.org/10.5281/zenodo.8403570
    :alt: Zenodo

.. |PyPI Version| image:: https://img.shields.io/pypi/v/pyscope
    :target: https://pypi.org/project/pyscope/
    :alt: PyPI Version

.. |PyPI Python Versions| image:: https://img.shields.io/pypi/pyversions/pyscope?logo=Python
    :target: https://pypi.org/project/pyscope/
    :alt: PyPI Python Versions

.. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/pyscope?logo=python
    :target: https://pypi.org/project/pyscope/
    :alt: PyPI Downloads

.. |Astropy| image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat
    :target: http://www.astropy.org
    :alt: Powered by Astropy

.. |GitHub CI| image:: https://img.shields.io/github/actions/workflow/status/WWGolay/pyscope/ci.yml?logo=GitHub&label=CI
    :target: https://github.com/WWGolay/pyscope/actions/workflows/ci.yml
    :alt: GitHub CI

.. |Code Coverage| image:: https://codecov.io/gh/WWGolay/pyscope/branch/main/graph/badge.svg
    :target: https://app.codecov.io/gh/WWGolay/pyscope/
    :alt: Code Coverage

.. |Documentation Status| image:: https://img.shields.io/readthedocs/pyscope?logo=ReadtheDocs
    :target: https://pyscope.readthedocs.io/en/latest/
    :alt: Documentation Status

.. |Codespaces Status| image:: https://github.com/WWGolay/pyscope/actions/workflows/codespaces/create_codespaces_prebuilds/badge.svg
    :target: https://github.com/WWGolay/pyscope/actions/workflows/codespaces/create_codespaces_prebuilds
    :alt: Codespaces Status

.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
    :target: https://github.com/pre-commit/pre-commit
    :alt: pre-commit enabled

.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :alt: Code Style

.. |isort| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
    :target: https://pycqa.github.io/isort/
    :alt: isort

.. |Donate| image:: https://img.shields.io/badge/Donate-to_pyscope-crimson
    :target: https://github.com/sponsors/WWGolay
    :alt: Donate

.. |Codespaces| image:: https://github.com/codespaces/badge.svg
    :target: https://codespaces.new/WWGolay/pyscope
    :alt: Codespaces
