# Path: orbkit/display.py
# def display(string):
#   '''Prints :literal:`string` to the terminal output and to the .oklog file.'''
#   global log_fid
#   if not options.quiet:
#     print(string)
#   if not options.no_log:
#     if log_fid is None:
#       if options.outputname is None or options.outputname == '':
#         return
#       else:
#         log_fid = '%s.oklog' % options.outputname.split('@')[0]
#     if not is_initiated:
#       init_display(log_fid)
#     f = open(log_fid, 'a')
#     f.write('%s\n' % string)
#     f.close()


import numpy
import sys
import warnings
    import re
from os import path
from copy import copy
  from UserList import UserList
  from collections import UserList
from .tools import *
from .display import display

      sort_indices : boolean, optional
        Specifies wheter list of indexes should be sorted before it is returned. This is only supported if flatten_input is set to ``True``.


    **Supported Formats:**

      Integer List (Counting from **Zero**!)::

        1       2       3
        5       4
        homo    lumo+2:lumo+4

      List with Symmetry Labels::

        1.1     2.1     1.3
        1.1     4.1
        4.1     2.3     2.1

      ``alpha`` and ``beta`` can be used together with symmetry labels to restrict the selection to orbitals of that symmetry.
      This option is not supported for integer lists. Note also that ``alpha`` and ``beta`` only restrict selection within one
      string of inputs. If you which to spin-restrict orbitlas given as a list of strings please use ``all_alpha`` or ``all_beta``.
      You may also select all MO's of a given symmetry by specifying only the symmetry label
      with a preceeding asterisc, e.g. ``*.A1`` to get all orbitals of A1 symmetry. 

    **Returns:**

      List of MOClass instances containing the selected orbitals as well as further information on the selection criteria used
      If a sinlge list is used as in input and/or flatten_input=True, an MOClass instance is returned instead.
    '''

# Path: orbkit/display.py
# def display(string):
#   '''Prints :literal:`string` to the terminal output and to the .oklog file.'''
#   global log_fid
#   if not options.quiet:
#     print(string)
#   if not options.no_log:
#     if log_fid is None:
#       if options.outputname is None or options.outputname == '':
#         return
#       else:
#         log_fid = '%s.oklog' % options.outputname.split('@')[0]
#     if not is_initiated:
#       init_display(log_fid)
#     f = open(log_fid, 'a')
#     f.write('%s\n' % string)
#     f.close()


# Path: orbkit/orbitals.py
import numpy
import sys
import warnings
    import re
from os import path
from copy import copy
  from UserList import UserList
  from collections import UserList
from .tools import *
from .display import display


      sort_indices : boolean, optional
        Specifies wheter list of indexes should be sorted before it is returned. This is only supported if flatten_input is set to ``True``.


    **Supported Formats:**

      Integer List (Counting from **Zero**!)::

        1       2       3
        5       4
        homo    lumo+2:lumo+4

      List with Symmetry Labels::

        1.1     2.1     1.3
        1.1     4.1
        4.1     2.3     2.1

      ``alpha`` and ``beta`` can be used together with symmetry labels to restrict the selection to orbitals of that symmetry.
      This option is not supported for integer lists. Note also that ``alpha`` and ``beta`` only restrict selection within one
      string of inputs. If you which to spin-restrict orbitlas given as a list of strings please use ``all_alpha`` or ``all_beta``.
      You may also select all MO's of a given symmetry by specifying only the symmetry label
      with a preceeding asterisc, e.g. ``*.A1`` to get all orbitals of A1 symmetry. 

    **Returns:**

      List of MOClass instances containing the selected orbitals as well as further information on the selection criteria used
      If a sinlge list is used as in input and/or flatten_input=True, an MOClass instance is returned instead.
    '''

    display('\nProcessing molecular orbital list...')