-
Notifications
You must be signed in to change notification settings - Fork 0
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
feat: Add contrains handling for stubs generator. #36
Comments
@lars-reimann It seems that Mypy is unable to parse constrains of the form class A[T: str]: ... I found the mypy module class Constraint:
"""A representation of a type constraint.
It can be either T <: type or T :> type (T is a type variable).
"""
... But it seems like it is just an internal constrains solver, not a parser we could use. |
Can it handle the old syntax? from typing import Generic, TypeVar
_T_co = TypeVar("_T_co", covariant=True, bound=str)
class ClassA(Generic[_T_co]):
def method1(self) -> _T_co:
... |
@lars-reimann Yes, mypy can handle this syntax. I will create a parser for this syntax. _T_in = TypeVar("_T_in", str, int) ? |
Probably, yes. Regarding this issue, I was rather looking at the |
@lars-reimann So, if we parse this code: _T_co = TypeVar("_T_co", covariant=True, bound=str)
_T_con = TypeVar("_T_con", contravariant=True, bound=int)
class ClassA(Generic[_T_co, _T_con]):
... would it result in these stubs
? And invariance is not of importance for us, since its the standard case? |
No, the stubs would be
|
@lars-reimann Could you also give me an example of a class with constructor parameters? I dont quite know at which place the curved brackets would be append. |
The Slightly reformatted & without a superclass:
Parameters are added inside the |
Bumps [mkdocs-glightbox](https://github.com/Blueswen/mkdocs-glightbox) from 0.3.7 to 0.4.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Blueswen/mkdocs-glightbox/releases">mkdocs-glightbox's releases</a>.</em></p> <blockquote> <h2>mkdocs-glightbox-0.4.0</h2> <ul> <li>Supported manual mode (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/29">#29</a>)</li> <li>Allow calling lightbox methods from other places (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/34">#34</a>)</li> <li>Added id to appended script tag (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/38">#38</a>)</li> <li>Access theme attribute directly (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/40">#40</a>)</li> <li>Better JavaScript Error Handling (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/36">#36</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/blueswen/mkdocs-glightbox/blob/main/CHANGELOG">mkdocs-glightbox's changelog</a>.</em></p> <blockquote> <p>mkdocs-glightbox-0.4.0 (2023-05-06)</p> <pre><code>* Supported manual mode ([#29](blueswen/mkdocs-glightbox#29)) * Allow calling lightbox methods from other places ([#34](blueswen/mkdocs-glightbox#34)) * Added id to appended script tag ([#38](blueswen/mkdocs-glightbox#38)) * Access theme attribute directly ([#40](blueswen/mkdocs-glightbox#40)) * Better JavaScript Error Handling ([#36](blueswen/mkdocs-glightbox#36)) </code></pre> <p>mkdocs-glightbox-0.3.7 (2023-01-24)</p> <pre><code>* Supported custom background and shadow ([#27](blueswen/mkdocs-glightbox#27)) </code></pre> <p>mkdocs-glightbox-0.3.6 (2023-12-30)</p> <pre><code>* Modified width default to auto prevent zooming large image bug ([#21](blueswen/mkdocs-glightbox#21)) * Supported only enable glightbox with on-glb class in given page ([#28](blueswen/mkdocs-glightbox#28)) </code></pre> <p>mkdocs-glightbox-0.3.5 (2023-11-18)</p> <pre><code>* Supported compatibility with the privacy plugin of Material for MkDocs insiders ([#25](blueswen/mkdocs-glightbox#25)) </code></pre> <p>mkdocs-glightbox-0.3.4 (2023-04-25)</p> <pre><code>* Fixed regex bug: quote issue and empty alt issue ([#14](blueswen/mkdocs-glightbox#14) [#19](blueswen/mkdocs-glightbox#19)) </code></pre> <p>mkdocs-glightbox-0.3.3 (2023-04-20)</p> <pre><code>* Refactored processing logic with regex ([#14](blueswen/mkdocs-glightbox#14)) </code></pre> <p>mkdocs-glightbox-0.3.2 (2023-03-19)</p> <pre><code>* Supported image without extension ([#13](blueswen/mkdocs-glightbox#13)) </code></pre> <p>mkdocs-glightbox-0.3.1 (2022-11-22)</p> <pre><code>* Supported lightbox slide effect customization ([#8](blueswen/mkdocs-glightbox#8)) * Supported synchronized lightbox caption dark mode with Material for MkDocs ([#7](blueswen/mkdocs-glightbox#7)) * Supported glightbox built-in gallery feature ([#11](blueswen/mkdocs-glightbox#11)) * Supported skip image in the anchor tag </code></pre> <p>mkdocs-glightbox-0.3.0 (2022-09-29)</p> <pre><code>* Fixed width and height setting in config not working bug * Supported specific skip class ([#5](blueswen/mkdocs-glightbox#5)) * Supported glightbox built-in caption with title and description ([#4](blueswen/mkdocs-glightbox#4)) * Fixed page jitter when lightbox closing issue using Material for MkDocs * Add white background for lightbox images to prevent the displaying issue of the transparent image on black background </code></pre> <p>mkdocs-glightbox-0.2.1 (2022-08-10)</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/7f68f19556c8d91eb45bed2f5e3b93f9d0b4e591"><code>7f68f19</code></a> v0.4.0</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/1409b0de89bd0aa930bbee0c2aa801c8b3391137"><code>1409b0d</code></a> Add manual mode</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/e5ce7c9214f2de3647cbb1c9a1ec67bd82b387f9"><code>e5ce7c9</code></a> Add search plugin note</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/d7747e7e1e58e8fe5868f38292bbb6a65f5ac902"><code>d7747e7</code></a> Merge pull request <a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/29">#29</a> from michalfapso/main</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/6895d4eb60ef383530f8a807bec19404342a74c3"><code>6895d4e</code></a> Add test case</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/dc38a6c042da9dcf949a594940f312cfbf5cc1ae"><code>dc38a6c</code></a> try catch prevent Uncaught TypeError (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/36">#36</a>)</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/7d2c0ab4b214759f7ab22ab9e775c609718ad061"><code>7d2c0ab</code></a> access theme attribute directly (<a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/40">#40</a>)</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/b0b63f8fa2bfbd14812c95b466af180e34db2cc4"><code>b0b63f8</code></a> Merge pull request <a href="https://redirect.github.com/Blueswen/mkdocs-glightbox/issues/34">#34</a> from AndBondStyle/main</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/8e652652429851d18a0c920ca1ddcbf12ab71fdf"><code>8e65265</code></a> update validation condition</li> <li><a href="https://github.com/blueswen/mkdocs-glightbox/commit/4963fdb93c4f483827bcab10c5289452068e1fb5"><code>4963fdb</code></a> Merge branch 'main' into main</li> <li>Additional commits viewable in <a href="https://github.com/Blueswen/mkdocs-glightbox/compare/v0.3.7...v0.4.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-glightbox&package-manager=pip&previous-version=0.3.7&new-version=0.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Is your feature request related to a problem?
Currently code with contrains is not handled during the stubs generation. If possible, this feature should be added (Python only supports upper bound contrains).
Desired solution
Additional Context (optional)
The text was updated successfully, but these errors were encountered: