Skip to content

catch AttrbuteError on typing imports from ironpython#1454

Closed
chenkasirer wants to merge 1 commit intomainfrom
iron_typing
Closed

catch AttrbuteError on typing imports from ironpython#1454
chenkasirer wants to merge 1 commit intomainfrom
iron_typing

Conversation

@chenkasirer
Copy link
Member

Not sure what has changed because these imports aren't new, but started getting AttributeError on these typing imports from ironpython.

IronPython 2.7.8 (2.7.8.0) on .NET 4.0.30319.42000 (64-bit)
Type "help", "copyright", "credits" or "license" for more information.
>>> from compas.data import Data
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ckasirer\repos\compas\src\compas\__init__.py", line 16, in <module>
  File "C:\Users\ckasirer\repos\compas\src\compas\data\__init__.py", line 9, in <module>
  File "C:\Users\ckasirer\repos\compas\src\compas\data\encoders.py", line 13, in <module>
  File "C:\Users\ckasirer\repos\compas\src\compas\data\data.py", line 6, in <module>
  File "C:\Program Files\IronPython 2.7\Lib\site-packages\typing.py", line 2061, in <module>
  File "C:\Program Files\IronPython 2.7\Lib\abc.py", line 109, in register
  File "C:\Program Files\IronPython 2.7\Lib\site-packages\typing.py", line 1410, in __subclasscheck__
  File "C:\Program Files\IronPython 2.7\Lib\abc.py", line 154, in __subclasscheck__
  File "C:\Program Files\IronPython 2.7\Lib\site-packages\typing.py", line 1290, in _abc_negative_cache_version
AttributeError: 'GenericMeta' object has no attribute '_abc_generic_negative_cache_version'

What type of change is this?

  • Bug fix in a backwards-compatible manner.
  • New feature in a backwards-compatible manner.
  • Breaking change: bug fix or new feature that involve incompatible API changes.
  • Other (e.g. doc update, configuration, etc)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
  • I ran all tests on my computer and it's all green (i.e. invoke test).
  • I ran lint on my computer and there are no errors (i.e. invoke lint).
  • I added new functions/classes and made them available on a second-level import, e.g. compas.datastructures.Mesh.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added necessary documentation (if appropriate)

@codecov
Copy link

codecov bot commented Mar 28, 2025

Codecov Report

❌ Patch coverage is 0% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.86%. Comparing base (ea17a24) to head (c57044b).
⚠️ Report is 70 commits behind head on main.

Files with missing lines Patch % Lines
src/compas/data/data.py 0.00% 1 Missing ⚠️
src/compas/data/encoders.py 0.00% 1 Missing ⚠️
src/compas/datastructures/datastructure.py 0.00% 1 Missing ⚠️
src/compas/geometry/geometry.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1454      +/-   ##
==========================================
- Coverage   61.87%   61.86%   -0.02%     
==========================================
  Files         208      208              
  Lines       22329    22329              
==========================================
- Hits        13817    13813       -4     
- Misses       8512     8516       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tomvanmele
Copy link
Member

are we still certain this change is needed and that the error was not triggered by something else?

@chenkasirer
Copy link
Member Author

I have only a partial idea why this happened: I had a typing.py module in the IPY site-packages.

No idea how it got there - I had it locally and at one point in time it was also found on CI. so import in COMPAS for typing which should normally fail with ImportError failed on something else within the module.

The interesting part is that typing.py is not shipped with IPY in any of the installers that I tried out, no idea how it go there.

The only mention I could find of this is this issue which doesn't offer a lot of explanations:
IronLanguages/ironpython2#414

Anyways, this has no longer been an issue on CI for me, and locally I just re-installed IPY and module was gone. So I'll go ahead and close this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants