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: 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
Requires-Dist: pywin32 ==306 ; platform_system == "Windows"
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'
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'

*******
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
