Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ee.event_names #99

Merged
merged 4 commits into from
Jan 12, 2022
Merged

ee.event_names #99

merged 4 commits into from
Jan 12, 2022

Commits on Jan 12, 2022

  1. Class Decorator API (#84)

    * Add class decorator API
    
    * Add autofunctions for pyee.cls
    
    * Remove travis file
    
    * docs: Fix a few typos (#91)
    
    * Type Annotations (#97)
    
    * Set up virtualenv, pyright and isort
    
    * Run isort
    
    * Passing type annotations for base.py
    
    * action to run type checks
    
    * Alas!
    
    * Happy type checker for trio
    
    * MOST of the library is type-checking
    
    * working, non-cranky type annotations for uplift laul
    
    * Type check the tests, cause an explosion
    
    * Clean up requirements.txt
    
    * tests type-checking
    
    * py.typed file
    
    * tests and linting happy
    
    * Update build
    
    * obvious action bugfix
    
    * trailing comma
    
    * remove inconsequential and angry type annotation
    
    * Ignore type issues w asyncio import
    
    * messy typecast
    
    * anyway thats when I started blasting
    
    * carnage!
    
    * uplift bugfixes
    
    * update pytest
    
    * bye 3.6
    
    * type annotations for cls
    
    Co-authored-by: Tim Gates <tim.gates@iress.com>
    jfhbrook and timgates42 committed Jan 12, 2022
    Configuration menu
    Copy the full SHA
    2e212b0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    619b268 View commit details
    Browse the repository at this point in the history
  3. ee.event_names tested and passing

    Now that there are some asserts for the value of event_names, we can see
    what issue @leirons was running into with `new_listener`. It turns out
    the issue ran pretty deep.
    
    Internally, pyee used to use a defaultdict to store events. This was
    mildly convenient for implementing on and emit, but it also meant that
    event names were added after an emit, even if there were no handlers.
    
    OK, so you patch it to use a regular dict and do the bookkeeping
    manually. But there's another reason an event might show up even if it
    has no handlers: pyee doesn't make an effort to clean up the
    OrderedDicts which contain the actual handlers.
    
    To solve this, I removed the defaultdict (so no event after an
    emit) and added a step on listener removal to clean up the OrderedDict.
    jfhbrook committed Jan 12, 2022
    Configuration menu
    Copy the full SHA
    bb4d225 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5116496 View commit details
    Browse the repository at this point in the history