# noctua package

## Subpackages

- noctua.config package
  - Submodules
  - noctua.config.constants module
  - Module contents
- noctua.devices package
  - Submodules
  - noctua.devices.alpaca module
  - noctua.devices.astelco module
    - `Focuser`
      - `Focuser.absolute`
      - `Focuser.is_moving`
      - `Focuser.position`
    - `OpenTSI`
      - `OpenTSI.get()`
      - `OpenTSI.put()`
    - `Rotator`
      - `Rotator.absolute`
      - `Rotator.is_moving`
      - `Rotator.position`
    - `Sensor`
      - `Sensor.humidity`
      - `Sensor.temperature`
    - `Telescope`
      - `Telescope.abort()`
      - `Telescope.altaz`
      - `Telescope.clear()`
      - `Telescope.clock`
      - `Telescope.coordinates`
      - `Telescope.cover`
      - `Telescope.is_moving`
      - `Telescope.offset`
      - `Telescope.open`
      - `Telescope.park`
      - `Telescope.radec`
      - `Telescope.state`
      - `Telescope.status`
      - `Telescope.targetradec`
      - `Telescope.track()`
      - `Telescope.tracking`
  - noctua.devices.basedevice module
    - `BaseDevice`
      - `BaseDevice.get()`
      - `BaseDevice.put()`
      - `BaseDevice.test_attribute`
      - `BaseDevice.test_method()`
  - noctua.devices.domotics module
  - noctua.devices.ipcam module
  - noctua.devices.meteo module
  - noctua.devices.siemens module
  - noctua.devices.stx module
  - noctua.devices.stx2 module
  - Module contents
- noctua.templates package
  - Submodules
  - noctua.templates.acquisition module
  - noctua.templates.basetemplate module
  - noctua.templates.bias module
  - noctua.templates.box module
  - noctua.templates.fillheader module
  - noctua.templates.flat module
  - noctua.templates.focus module
  - noctua.templates.focus2 module
  - noctua.templates.lampsoff module
  - noctua.templates.observation module
  - noctua.templates.skyflat module
  - noctua.templates.testlamp module
  - noctua.templates.testoutput module
  - noctua.templates.testpause module
  - noctua.templates.testsonoff module
  - Module contents
- noctua.utils package
  - Submodules
  - noctua.utils.analysis module
    - `EllipticalMoffat`
      - `EllipticalMoffat.alpha`
      - `EllipticalMoffat.amplitude`
      - `EllipticalMoffat.evaluate()`
      - `EllipticalMoffat.fwhm_x`
      - `EllipticalMoffat.fwhm_y`
      - `EllipticalMoffat.param_names`
      - `EllipticalMoffat.theta`
      - `EllipticalMoffat.x_0`
      - `EllipticalMoffat.y_0`
    - `Moffat2DXY`
      - `Moffat2DXY.alpha`
      - `Moffat2DXY.amplitude`
      - `Moffat2DXY.evaluate()`
      - `Moffat2DXY.fit_deriv()`
      - `Moffat2DXY.gamma_x`
      - `Moffat2DXY.gamma_y`
      - `Moffat2DXY.param_names`
      - `Moffat2DXY.x_0`
      - `Moffat2DXY.y_0`
    - `fit_star()`
    - `skyflat_exptime()`
  - noctua.utils.check module
    - `ascom_errors()`
    - `content_errors()`
    - `meteo_errors()`
    - `request_errors()`
    - `socket_errors()`
    - `telnet_errors()`
  - noctua.utils.coordinates module
  - noctua.utils.data_access_object module
    - `ObservationBlockObject`
      - `ObservationBlockObject.content()`
      - `ObservationBlockObject.create()`
      - `ObservationBlockObject.delete()`
      - `ObservationBlockObject.read()`
      - `ObservationBlockObject.show()`
      - `ObservationBlockObject.todos`
      - `ObservationBlockObject.update()`
    - `guess()`
  - noctua.utils.logger module
    - `main()`
    - `mylog()`
  - noctua.utils.structure module
    - `date_folder()`
    - `fits_path()`
    - `foc_path()`
    - `frame_folder()`
    - `log_path()`
    - `save_filename()`
  - noctua.utils.url_stuff module
    - `build_url()`
  - Module contents

## Submodules

## noctua.sequencer module

Sequencer module for Observation Blocks (OBs) in JSON format

class noctua.sequencer.Sequencer(embedded=True)

  Bases: `object`

  Manage a sequence of JSON Observation Blocks (OBs)

  abort_current_template()

    Abort the currently running template. The sequencer will pass to the following one, if any.

  execute()

    Execute the template(s) contained in the loaded OB

  interrupt(signum, frame)

    Intercept a CTRL+C instead of raising a KeyboardInterrupt exception in order to be able to operate on the template class, for example to modify a pause attribute or call a method.

  load_file(ob_file_path_str)

    Load a JSON file with an OB

  load_script(template_script_path, params={})

    Load a python file where the template is implemented

  pause()

    Put the pause attribute in the running template to True. It will be checked in a template method.

  quit()

    Abort the execution of the whole OB

  resume()

    Restore the pause attribute in the template class to its original state. It will be checked in a template method.

noctua.sequencer.cli()

  Command line interface for sequencer

## Module contents

Main package