Skip to content
This repository has been archived by the owner on Nov 29, 2023. It is now read-only.

Automatisch constant Annotation generieren #434

Closed
Masara opened this issue Apr 8, 2022 · 1 comment · Fixed by #440
Closed

Automatisch constant Annotation generieren #434

Masara opened this issue Apr 8, 2022 · 1 comment · Fixed by #440
Assignees
Labels
enhancement 💡 New feature or request

Comments

@Masara
Copy link
Contributor

Masara commented Apr 8, 2022

Is your feature request related to a problem? Please describe

Parameter in APIs werden oft immer nur auf einen Wert gesetzt, diese Parameter sollen zu Konstanten gemacht werden. Das von Hand tun ist zu aufwendig, also soll es automatisiert werden.

Desired solution

Anhand von gegebenem Client-Code der die jeweilige API nutzt ein Python Dict erstellen, welches die Teile der API enthält, welche Konstante Werte besitzen soll mit deren dazugehörigen Werten. Dieses Dict soll mit dem Dict aus #433 kombinierbar und in eine JSON Datei schreibbar sein.
Unter package-parser steht schon Code der verwendet werden kann.

Code dazu soll in einen neuen Ordner unter package-parser/package-parser/commands/generate_annotations geschrieben werden.

Additional context (optional)

Unter api-editor/data gibt es den API Code, der zu analysierende Client Code wird uns noch von Lars zur Verfügung gestellt.

Es gibt eine Datei in der alle Elemente stehen die nur einen Wert annehmen, dort steht aber nicht was dieser Wert ist. Es gibt auch eine Datei in der steht welcher Wert wie oft verwendet wird. Es ist möglich die erstere Datei zu erweitern, das dort auch der Wert drin steht, oder es werden beide Dateien zusammen ausgewertet.

@Masara Masara added the enhancement 💡 New feature or request label Apr 8, 2022
@lars-reimann
Copy link
Member

lars-reimann commented Apr 8, 2022

JSON for constant annotations:

{
        "sklearn/sklearn._config/config_context/assume_finite": {
            "target": "sklearn/sklearn._config/config_context/assume_finite",
            "defaultType": "boolean",
            "defaultValue": true
        },
        "sklearn/sklearn._config/config_context/working_memory": {
            "target": "sklearn/sklearn._config/config_context/working_memory",
            "defaultType": "string",
            "defaultValue": "bla"
        },
        "sklearn/sklearn._config/config_context/print_changed_only": {
            "target": "sklearn/sklearn._config/config_context/print_changed_only",
            "defaultType": "none",
            "defaultValue": null
        },
        "sklearn/sklearn._config/config_context/display": {
            "target": "sklearn/sklearn._config/config_context/display",
            "defaultType": "number",
            "defaultValue": "3"
        }
}

@Masara Masara assigned GideonKoenig and unassigned nvollroth Apr 8, 2022
Masara added a commit that referenced this issue Apr 8, 2022
GideonKoenig added a commit that referenced this issue Apr 21, 2022
* feat: Started issue #434 - not working yet!

* feat: A bit more code cleanup - still not working tho!

* added function: determine_constant_parameter()
cleaned and refactored _generate_annotations module
still missing test data - waiting for a response from Lars

* fixed init file

* Prepared the test file for the incoming testdata and cleaned some code in the determine_constant_parameters() function.

* test: data for unused and constant annotations (#439)

* test: api data for unused annotations

* test: usage data for unused annotations

* test: api data for constant annotations

* test: usage data for constant annotations

* refactor: rename files to prevent mapping to incorrect schema

* Finished the test file - has to be run on a different machine, since tests dont seem to work for me.

* Removed unnecessary function call

* Fixed spelling error

* Fixed more issues

* Restructured test, since the preprocessing steps are skipped otherwise.

* More issues fixed

* style: apply automatic fixes of linters

* Fixed typos

* Fixed return type of __determine_constant_parameters

* Added debug message when adding default values

* style: apply automatic fixes of linters

* Fixed test data - Since the usage entries were all identical, the preprocessing didnt work properly.

* Adjust output format of values

* style: apply automatic fixes of linters

* Changed output format - proper formation should be part of the gathering function

* Clean merge comments

* Improved documentation

* Added the processing of the DefaultValue so the dictinary that is return is already matching the desired format.

* Update package-parser.iml

* Update usage_data.json

* Update package-parser.iml

* Update package-parser.iml

* Fixed bug in output formatting

* style: apply automatic fixes of linters

* Seperate formatting steps into functions, since they are gonna be needed in the future

* Fixed result typing

* Fixed typing issues

* style: apply automatic fixes of linters

Co-authored-by: Arsam Islami <arsamislami@yahoo.de>
Co-authored-by: GideonKoenig <ginosiassa.koenig@online.de>
Co-authored-by: Lars Reimann <mail@larsreimann.com>
Co-authored-by: GideonKoenig <GideonKoenig@users.noreply.github.com>
lars-reimann pushed a commit that referenced this issue Nov 2, 2022
)

Bumps [numpydoc](https://github.com/numpy/numpydoc) from 1.4.0 to 1.5.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/numpy/numpydoc/blob/main/doc/release_notes.rst">numpydoc's
changelog</a>.</em></p>
<blockquote>
<h2>1.5.0</h2>
<p>Release date: 8 October 2022</p>
<p>Requires Python 3.7+ and Sphinx 4.2+.</p>
<p><code>Full Changelog
&lt;https://github.com/numpy/numpydoc/compare/v1.4.0...v1.5.0&gt;</code>__</p>
<p>Fixed bugs</p>
<pre><code>
- Parsing ``returns`` section with several types and no name
`[#428](numpy/numpydoc#428)
&lt;https://github.com/numpy/numpydoc/issues/428&gt;`__
- BUG: Fix returns parsing no name
`[#429](numpy/numpydoc#429)
&lt;https://github.com/numpy/numpydoc/pull/429&gt;`__ (`rossbar
&lt;https://github.com/rossbar&gt;`__)
<p>Closed issues
</code></pre></p>
<ul>
<li>readthedocs build failing
<code>[#439](numpy/numpydoc#439)
&lt;https://github.com/numpy/numpydoc/issues/439&gt;</code>__</li>
<li>Exclude class properties from being listed under METHODS section
<code>[#339](numpy/numpydoc#339)
&lt;https://github.com/numpy/numpydoc/issues/339&gt;</code>__</li>
<li>BUG: Numpydoc doesn’t render attributes decorated with
<code>cached\_property</code> in the Attributes section
<code>[#432](numpy/numpydoc#432)
&lt;https://github.com/numpy/numpydoc/issues/432&gt;</code>__</li>
<li>Is numpydoc_use_blockquotes deprecated or not yet?
<code>[#420](numpy/numpydoc#420)
&lt;https://github.com/numpy/numpydoc/issues/420&gt;</code>__</li>
<li>No light theme available in docs
<code>[#413](numpy/numpydoc#413)
&lt;https://github.com/numpy/numpydoc/issues/413&gt;</code>__</li>
<li>1.4.0 release plan
<code>[#408](numpy/numpydoc#408)
&lt;https://github.com/numpy/numpydoc/issues/408&gt;</code>__</li>
</ul>
<p>Merged pull requests</p>
<pre><code>
- Update doc requirements
`[#441](numpy/numpydoc#441)
&lt;https://github.com/numpy/numpydoc/pull/441&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Update pydata-sphinx-theme
`[#440](numpy/numpydoc#440)
&lt;https://github.com/numpy/numpydoc/pull/440&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Support Python 3.11
`[#438](numpy/numpydoc#438)
&lt;https://github.com/numpy/numpydoc/pull/438&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Update precommit hooks
`[#437](numpy/numpydoc#437)
&lt;https://github.com/numpy/numpydoc/pull/437&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Use Python 3.10 to build docs
`[#436](numpy/numpydoc#436)
&lt;https://github.com/numpy/numpydoc/pull/436&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Use `requirements/*.txt` files for CI
`[#435](numpy/numpydoc#435)
&lt;https://github.com/numpy/numpydoc/pull/435&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Fix front page `[#434](numpy/numpydoc#434)
&lt;https://github.com/numpy/numpydoc/pull/434&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Add cached property support
`[#433](numpy/numpydoc#433)
&lt;https://github.com/numpy/numpydoc/pull/433&gt;`__ (`rossbar
&lt;https://github.com/rossbar&gt;`__)
- ENH: Update validate.py to allow parameters with trailing underscores.
`[#425](numpy/numpydoc#425)
&lt;https://github.com/numpy/numpydoc/pull/425&gt;`__ (`stefmolin
&lt;https://github.com/stefmolin&gt;`__)
- DOC: Use ``:ref:`` when referring to section headers
`[#424](numpy/numpydoc#424)
&lt;https://github.com/numpy/numpydoc/pull/424&gt;`__ (`namurphy
&lt;https://github.com/namurphy&gt;`__)
- Remove numpydoc_use_blockquotes
`[#422](numpy/numpydoc#422)
&lt;https://github.com/numpy/numpydoc/pull/422&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Require sphinx&gt;=4.2 (cleanup)
`[#421](numpy/numpydoc#421)
&lt;https://github.com/numpy/numpydoc/pull/421&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- docs: fix validation include line numbers
`[#418](numpy/numpydoc#418)
&lt;https://github.com/numpy/numpydoc/pull/418&gt;`__ (`thatlittleboy
&lt;https://github.com/thatlittleboy&gt;`__)
- Update precommit linters
`[#417](numpy/numpydoc#417)
&lt;https://github.com/numpy/numpydoc/pull/417&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- Update GH actions
`[#416](numpy/numpydoc#416)
&lt;https://github.com/numpy/numpydoc/pull/416&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
- ENH: Add support for dict show_inherited_class_members
`[#415](numpy/numpydoc#415)
&lt;https://github.com/numpy/numpydoc/pull/415&gt;`__ (`larsoner
&lt;https://github.com/larsoner&gt;`__)
- DOC: Add theme switcher and default to lightmode.
`[#414](numpy/numpydoc#414)
&lt;https://github.com/numpy/numpydoc/pull/414&gt;`__ (`rossbar
&lt;https://github.com/rossbar&gt;`__)
- Require sphinx&gt;=4.2
`[#411](numpy/numpydoc#411)
&lt;https://github.com/numpy/numpydoc/pull/411&gt;`__ (`jarrodmillman
&lt;https://github.com/jarrodmillman&gt;`__)
<p>* <em>This Changelog was automatically generated by</em>\
<code>github_changelog_generator
&amp;lt;https://github.com/github-changelog-generator/github-changelog-generator&amp;gt;</code>__
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/numpy/numpydoc/commit/3a8a96cda5e04ef77caa076be1fcd115e3987b62"><code>3a8a96c</code></a>
Designate 1.5.0 release</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/c6338c7607355f38c382017e5f492f50e1b44da9"><code>c6338c7</code></a>
Update doc requirements (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/441">#441</a>)</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/72e9cd4dae1d451ca24f06e0fa7a82285b381139"><code>72e9cd4</code></a>
Update pydata-sphinx-theme (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/440">#440</a>)</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/8b983feb66ffcbebebe58aa5d10fea6c2a66207f"><code>8b983fe</code></a>
Bump version</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/26cfa5847df5cdd6c0fa49c9be410fdfac2c7afe"><code>26cfa58</code></a>
Designate 1.5.0rc1 release</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/664e7144ece8f0779b18f6282ed7a42e35f130ab"><code>664e714</code></a>
Suport Python 3.11 (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/438">#438</a>)</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/4c74647afc82a1b352701a52f0f1a33891dbd3ff"><code>4c74647</code></a>
Fix front page (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/434">#434</a>)</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/ddcf0fea7a68d9f826ed863588ecc494b11d83a4"><code>ddcf0fe</code></a>
Add cached property support (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/433">#433</a>)</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/94b7a844a8ed956a2fc2f17cf0630ae54af323ea"><code>94b7a84</code></a>
Update precommit hooks (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/437">#437</a>)</li>
<li><a
href="https://github.com/numpy/numpydoc/commit/db404754f0cd7bb0927280e769bc8c9d95a2e42d"><code>db40475</code></a>
Use Python 3.10 to build docs (<a
href="https://github-redirect.dependabot.com/numpy/numpydoc/issues/436">#436</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/numpy/numpydoc/compare/v1.4.0...v1.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=numpydoc&package-manager=pip&previous-version=1.4.0&new-version=1.5.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 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement 💡 New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants