Thursday, 25 August 2016

Mypy 0.4.4 Released

I just uploaded version 0.4.4 of mypy-lang to PyPI! This release adds several new features, bug fixes and library stub updates.

Run this to upgrade to the new release using pip:

    python3 -m pip install -U mypy-lang

Experimental async and await Support

Mypy can now type check code using async and await (PEP 492). Here is an example from the documentation (this requires --fast-parser):

    import asyncio

    async def format_string(tag: str, count: int) -> str:
        return 'T-minus {} ({})'.format(count, tag)

    async def countdown_1(tag: str, count: int) -> str:
        while count > 0:
            my_str = await format_string(tag, count)  # has type 'str'
            print(my_str)
            await asyncio.sleep(0.1)
            count -= 1
        return "Blastoff!"

    loop = asyncio.get_event_loop()
    loop.run_until_complete(countdown_1("Millennium Falcon", 5))
    loop.close()

NewType

You can use NewType (see documentation) to define a special lightweight variant of an existing type. Mypy considers it to be a separate type, but there’s only minimal runtime overhead, as it doesn’t define a new class. We can create a new type called UserId, instances of which are actually int objects at runtime, but which is treated like a subclass of int by mypy:

    from typing import NewType

    UserId = NewType('UserId', int)

    def name_by_id(user_id: UserId) -> str:
        ...

    name_by_id(42)          # Type check error -- UserId expected
    name_by_id(UserId(42))  # OK
    print(UserId(42))       # 42 (the runtime representation is just int)

Additional Changes

Here is list of other notable changes in this release:

  • Support checks for sys.version_info and sys.platform, which are especially useful for stubs (see documentation)
  • Add the --platform command line option to explicitly set the target platform, instead of defaulting to the current platform
  • Support *expr within list, tuple and set expressions, and **expr within dict expressions (requires --fast-parser)
  • Incremental type checking is now more robust (--incremental)
  • Strict optional checking is also more robust (--strict-optional)
  • Many bugs fixed (especially crashes)
  • Lots of typeshed improvements
  • Documentation updates
  • Warn about unused type ignores on imports with --warn-unused-ignores
  • Add --suppress-error-context flag to suppress notes about class/function (this cleaner output mode may become the default in the future)
  • Less output by default on internal error (use --tb to show traceback)
  • Removed the need for -f /--dirty-stubs during mypy development
  • Started transitioning to using pytest for the mypy test suite (PR #1944)

Acknowledgements

Thanks to all mypy contributors who contributed to this release:
  • Daniel F Moisset
  • Fabian Heredia Montiel
  • Roy Williams
  • Ryan Gonzalez
  • Shrey Desai
  • Valérian Rousset
Additional thanks to typeshed contributors:
  • Alvaro Caceres
  • Antoine Catton
  • Daniel Horn
  • Daniël van Eeden
  • David Euresti
  • Elazar Gershuni
  • Emanuel Barry
  • Fu Yong Quah
  • Jakub Stasiak
  • Matthias Kramm
  • Max Wittek
  • Michael R. Crusoe
  • Nicholas Bishop
  • Tom Manderson
  • Tomasz Elendt
  • Tyler O'Meara
  • Wojciech Kaczmarek
  • Alvaro Caceres
  • jchien14
  • jdelic
  • John K Lai
  • kosaka
  • peterdotran
  • speezepearson
  • Tony Grue
  • wreed4

- Jukka (on behalf of the rest of the mypy team: Guido, David, Greg and Michael Lee)

24 comments:

  1. Hi. I use MyPy at work, and I'd like to use something analogous to `NewType` for a current project, but I don't understand the semantics behind `NewType` as described in this post.

    In your example, we create `UserID = NewType("UserID", int)`. If `UserID` is truly a fresh type, then we have no way to manipulate it. It seems we have just the one introduction form `UserID(int)`, which will do, but no corresponding elimination forms. How are values of type `UserId` supposed to be used?

    ReplyDelete
    Replies
    1. For questions, please use the tracker at https://github.com/python/mypy

      Delete
  2. I love NewType! Used it for a medium-sized system at work and it was a great help in catching logical errors (eg, email addresses are simply strings, but by creating a constructor function that returns an "email" after the appropriate string checks, I can use the email string throughout the system without needing additional validation checks. Thanks much, and looking forward future additions!

    ReplyDelete
  3. The blog is absolutely truly incredible. Lots of large information and inspiration, both of which we all need.
    Web Designing Company in Bangalore, Web Development Company Bangalore

    ReplyDelete
  4. I absolutely admired every bit of it and i additionally accept you book apparent to analysis out fresh things in your site.
    UI UX Design Companies in Bangalore, Web Application Development in Bangalore

    ReplyDelete
  5. شركة تنظيف بالطائف بيت العز

    عزيزى العميل مع كثرة الشركات فى المملكة العربية السعودية ازدادت اهمية تميز افضل دشركة تنظيف بالطائفعن غيرها من الشركات لان مع الكثرة وانتشار شركات النظافة فالعملاء اصبحوا يتطلعون الى الافضل فى الخدمة والمناسبة فى الاسعار

    شركة تنظيف ستائر بالطائف
    شركة تنظيف شقق بالطائف
    شركة تنظيف سجاد بالطائف


    تنظيف فلل بالطائف
    شركة تنظيف فلل بالطائف
    تنظيف شقق واستراحات بالطائف
    شركة تنظيف شقق واستراحات بالطائف
    تنظيف اثاث المنازل بالطائف
    شركة تنظيف اثاث المنازل بالطائف
    تنظيف واجهات زجاج بالطائف
    شركة تنظيف واجهات زجاج بالطائف


    http://beit-alezz.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D9%81/

    ReplyDelete
  6. شركة مكافحة حشرات بالطائف بيت العز
    شركة مكافحة حشرات بالطائف قادره على القيام باعمال المكافحة والقضاء على اى نوع من الحشرات بالاعتماد على احدث الالات والماكينات التى تقوم بالوصول الى اصعب الاماكن التى من الممكن ان يتواجد بيها الحشرات
    شركة رش مبيدات بالطائف
    شركة مكافحة النمل الابيض بالطائف

    شركة مكافحة الفئران بالطائف
    مكافحة الفئران بالطائف


    http://beit-alezz.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%85%D9%83%D8%A7%D9%81%D8%AD%D8%A9-%D8%AD%D8%B4%D8%B1%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D9%81/


    شركة تنظيف خزانات بالطائف بيت العز

    مع شركة تنظيف خزانات بالطائف لا تبحث كثيرا هل ترغب فى الحصول على مياة نظيفة ونقية في منزلك اذن انت فى حاجة الى الاستعانة بافضل شركة غسيل خزانات بالطائف

    شركة عزل خزانات بالطائف


    شركة كشف تسربات بالطائف
    كشف تسربات بالطائف

    http://beit-alezz.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D9%81/

    ReplyDelete

  7. الفهد العربى ارخص شركات الشحن فهى تقدم خدماتها بين دول الخليج ومصر ودول مجلس التعاون العربى

    شركة شحن بري من مصر للسعودية
    شركة شحن من مصر الى السعودية
    شركة شحن
    شركة شحن دولى

    https://asnanews.net/%D8%B4%D8%B1%D9%83%D8%A9-%D8%B4%D8%AD%D9%86-%D8%A8%D8%B1%D9%89-%D9%85%D9%86-%D9%85%D8%B5%D8%B1-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%B3%D8%B9%D9%88%D8%AF%D9%8A%D8%A9/

    ReplyDelete
  8. شركة تنظيف بمكة بيت العز

    بيت العز افضلشركة تنظيف بمكة من منا لايحلم بمكان نظيف وهادى ومرتب؟ من منا لا يفكر فى اعمال التنظيف؟ فلا تبحث كثيرا ولاتتردد الان انت تمتلك خدمه كامله فى التنظيف من الالف الى الياء فخدماتنا كامله متكامله فى التنظيف فنحن لدينا القدره على القيام بتنظيف البيارات وتنظيف الشقق والفلل والبيوت والمنازل والمكاتب والموكيت والارضيات والسجاد والوجهات الزجاجيه وغيرهم من التنظيف بالاعتماد على افضل طاقم عمل متخصص للقيام باعمال التنظيف ونوفر الالات التى تساعد فى القيام باعمال التنظيف على اكمل وجه بالاعتماد على افضل المنظفات المتعارف عليها ذات جوده عاليه فلا تتردد فى الاستعانه بـ افضلشركة تنظيف شقق بمكةفتاكد انك سوف تشعر بالفرق الواضح فى خدماتنا في بيت العزشركة تنظيف منازل بمكة
    شركة تنظيف سجاد بمكة

    شركة تنظيف فلل بمكة
    http://beit-alezz.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D9%85%D9%83%D8%A9/

    شركة مكافحة حشرات بمكة بيت العز

    بيت العز شركة مكافحة حشرات بمكةنقوم بالقضاء على كافة انواع الحشرات بافضل المبيدات الآمنة على الصحة فمؤسسة بيت العز افضلشركة رش مبيدات بمكة

    هل تعانى من وجود الحشرات؟ هل ياتى عليك فتره وتزداد كميه الحشرات المتواجده فى المكان؟ فالان مع بيت العز كافضل شركة مكافحه حشرات بمكة انت الان تمتلك اكبر الشركات التى تعمل فى خدمات المكافحه والتخلص من اى نوع من الحشرات نهائيا


    شركة مكافحة النمل الابيض بمكة
    شركة مكافحة العتة بمكة
    شركة مكافحة الفئران بمكة
    شركة مكافحة الصراصير بمكة

    http://beit-alezz.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%85%D9%83%D8%A7%D9%81%D8%AD%D8%A9-%D8%AD%D8%B4%D8%B1%D8%A7%D8%AA-%D8%A8%D9%85%D9%83%D8%A9/

    ReplyDelete
  9. شركة تنظيف خزانات بمكة بيت العز

    شركة تنظيف خزانات بمكةتساعدك على سلامة المياه من التلوث داخل خزان منزلك لان المياه تعتبر من اهم الاشياء التى لابد ان نعتنى بها فالان مع بيت العز كافضل شركة غسيل خزانات بمكة
    شركة عزل خزانات بمكة
    http://beit-alezz.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D9%85%D9%83%D8%A9/

    بيت العز شركة تنظيف بالبخار بمكة
    الكثير لا يعلمون انهم بكل سهولة يستطيعوا ان يقوموا بتنظيف منزلهم وهذا عن طريق استخدام البخار في التنظيف ويوجد ايضا العديد من المميزات نتيجة استخدام البخار في التنظيف ،بيت العز بمكة المكرمة افضل
    شركة تنظيف بالبخار بمكة
    شركة تنظيف سجاد بالبخار بمكة
    شركة تنظيف سجاد بمكة
    شركة تنظيف موكيت بمكة
    شركة تنظيف موكيت بالبخار بمكة
    شركة تنظيف مجالس بالبخار بمكة

    http://beit-alezz.com/%d8%b4%d8%b1%d9%83%d8%a9-%d8%aa%d9%86%d8%b8%d9%8a%d9%81-%d8%a8%d8%a7%d9%84%d8%a8%d8%ae%d8%a7%d8%b1-%d8%a8%d9%85%d9%83%d8%a9/


    ReplyDelete

  10. شركة تنظيف بالدمام الكمال اول بوابة الكترونية للصيانية المنزلية

    مع الكمال افضل شركة تنظيف بالدمام
    يسعدنا ان نقدم لكم خدمات التنظيف الشاملة وباقل الاسعار واعلى جودة فنحن شركة تنظيف شقق بالدمام



    شركة تنظيف منازل بالدمام

    تابعونا ستجدون لدينا خدمات مميزة واسعار تناسب الجميع

    http://www.elkamaal.com/services/%d8%b4%d8%b1%d9%83%d8%a9-%d8%aa%d9%86%d8%b8%d9%8a%d9%81-%d9%85%d9%86%d8%a7%d8%b2%d9%84-%d8%a8%d8%a7%d9%84%d8%af%d9%85%d8%a7%d9%85/



    هل تبغون شركة مكافحة حشرات ماهرة اليكم الكمال


    افضل شركة مكافحة حشرات بالدمام
    ولديها افضل المبيدات الحشرية فهى ارخص شركة رش مبيدات بالدمام


    وتقوم بمكافحة جميع انواع الحشرات فهى امهر شركة مكافحة النمل الابيض بالدمام


    http://www.elkamaal.com/services/%d8%b4%d8%b1%d9%83%d8%a9-%d9%85%d9%83%d8%a7%d9%81%d8%ad%d8%a9-%d8%a7%d9%84%d8%ad%d8%b4%d8%b1%d8%a7%d8%aa-%d8%a8%d8%a7%d9%84%d8%af%d9%85%d8%a7%d9%85/

    ReplyDelete
  11. فرسان المثالى افضل شركة كشف تسربات المياه بالدمام 0506070763


    من اكبر شركات كشف تسرب المياه بدون تكسير فرسان المثالى
    شركة كشف تسربات بالدمام
    شركة تنظيف خزانات بالدمام
    وايضا

    شركة عزل خزانات بالدمام
    وكذلك
    شركة عزل اسطح بالدمام

    شركة عوازل الدمام
    شركات العزل المائي بالدمام
    شركات العزل الحراري بالدمام

    http://forsan-almthaly.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D8%A9-%D8%A8%D8%A7%D9%84%D8%AF%D9%85%D8%A7%D9%85/

    فرسان المثالى افضل شركة كشف تسربات المياه بالقطيف0506070763

    هل تعانى من تسرب المياه فلا داعى للقلق مع فرسان المثالى
    شركة كشف تسريبات المياه بالقطيف

    وباقل الاسعار ولنا خدمتنا بمدن اخرى
    شركة كشف تسربات بالاحساء
    وايضا
    شركة كشف تسربات المياه بالخبر



    http://forsan-almthaly.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D9%8A%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D9%87-%D8%A8%D8%A7%D9%84%D9%82%D8%B7%D9%8A%D9%81/

    ReplyDelete
  12. فرسان المثالى افضل شركة تنظيف بالاحساء0506070763
    احصل على نظافة مثالية من فرسان المثالى افضل

    شركة تنظيف بالاحساء
    شركات النظافة بالاحساء
    شركة تنظيف فلل بالاحساء
    شركة تنظيف منازل بالاحساء
    شركة تنظيف بيوت بالاحساء
    شركة تنظيف شقق بالاحساء
    شركة تنظيف كنب بالاحساء
    شركة المثالية للتنظيف بالاحساء

    http://forsan-almthaly.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D8%A7%D9%84%D8%A5%D8%AD%D8%B3%D8%A7%D8%A1/

    فرسان المثالى افضل شركة مكافحة حشرات بالقطيف0506070763
    مع فرسان المثالى افضل
    شركة مكافحة حشرات بالقطيف

    لا داعى للقلق بعد الان فى ستخلصك من جميع انواع الحشرات

    شركة رش مبيدات بالقطيف
    شركة مكافحة النمل الابيض بالقطيف



    http://forsan-almthaly.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%85%D9%83%D8%A7%D9%81%D8%AD%D8%A9-%D8%AD%D8%B4%D8%B1%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D9%82%D8%B7%D9%8A%D9%81/

    ReplyDelete