<!--Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->

.. _api:


ALE Library
===========
UserALE intercepts all application events by letting the developer install an event filter in their PyQT5 application to generate detailed user logs. UserAle does not capture system level logs or events generated by a non-user (a.k.a. system and signals sent between QObjects).

UserAle
-------

.. automodule:: userale.ale
    :members:
    :undoc-members:
    :show-inheritance:

